diff --git a/debian/changelog b/debian/changelog index 0b1bf0061..77013211a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -linux (4.19.17-1) UNRELEASED; urgency=medium +linux (4.19.20-1) UNRELEASED; urgency=medium * New upstream stable update: https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.17 @@ -26,7 +26,7 @@ linux (4.19.17-1) UNRELEASED; urgency=medium - r8169: load Realtek PHY driver module before r8169 - crypto: authencesn - Avoid twice completion call in decrypt path - crypto: authenc - fix parsing key with misaligned rta_len - - xen: Fix x86 sched_clock() interface for xen + - [x86] xen: Fix x86 sched_clock() interface for xen - Revert "btrfs: balance dirty metadata pages in btrfs_finish_ordered_io" - btrfs: wait on ordered extents on abort cleanup - Yama: Check for pid death before checking ancestry @@ -78,6 +78,286 @@ linux (4.19.17-1) UNRELEASED; urgency=medium - loop: drop caches if offset or block_size are changed - drm/fb-helper: Ignore the value of fb_var_screeninfo.pixclock - nbd: Use set_blocksize() to set device blocksize + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.18 + - ipv6: Consider sk_bound_dev_if when binding a socket to a v4 mapped + address + - [armhf, arm64 net: dsa: mv88x6xxx: mv88e6390 errata + - net, skbuff: do not prefer skb allocation fails early + - qmi_wwan: add MTU default to qmap network interface + - r8169: Add support for new Realtek Ethernet + - ipv6: Take rcu_read_lock in __inet6_bind for mapped addresses + - net: clear skb->tstamp in bridge forwarding path + - netfilter: ipset: Allow matching on destination MAC address for mac and + ipmac sets + - [arm64] gpio: pl061: Move irq_chip definition inside struct pl061 + - drm/amd/display: Guard against null stream_state in set_crc_source + - [x86] drm/amdkfd: fix interrupt spin lock + - ixgbe: allow IPsec Tx offload in VEPA mode + - [x86] platform: asus-wmi: Tell the EC the OS will handle the display + off hotkey + - e1000e: allow non-monotonic SYSTIM readings + - [x86] usb: typec: tcpm: Do not disconnect link for self powered devices + - of: overlay: add missing of_node_put() after add new node to changeset + - writeback: don't decrement wb->refcnt if !wb->bdi + - serial: set suppress_bind_attrs flag only if builtin + - bpf: Allow narrow loads with offset > 0 + - ALSA: oxfw: add support for APOGEE duet FireWire + - [x86] mce: Fix -Wmissing-prototypes warnings + - [mips] SiByte: Enable swiotlb for SWARM, LittleSur and BigSur + - [arm64] perf: set suppress_bind_attrs flag to true + - drm/atomic-helper: Complete fake_commit->flip_done potentially earlier + - [arm64] clk: meson: meson8b: fix incorrect divider mapping in cpu_scale_table + - samples: bpf: fix: error handling regarding kprobe_events + - usb: gadget: udc: renesas_usb3: add a safety connection way for + forced_b_device + - fpga: altera-cvp: fix probing for multiple FPGAs on the bus + - selinux: always allow mounting submounts + - ASoC: pcm3168a: Don't disable pcm3168a when CONFIG_PM defined + - scsi: qedi: Check for session online before getting iSCSI TLV data. + - drm/amdgpu: Reorder uvd ring init before uvd resume + - rxe: IB_WR_REG_MR does not capture MR's iova field + - efi/libstub: Disable some warnings for x86{,_64} + - jffs2: Fix use of uninitialized delayed_work, lockdep breakage + - clk: imx: make mux parent strings const + - pstore/ram: Do not treat empty buffers as valid + - media: uvcvideo: Refactor teardown of uvc on USB disconnect + - powerpc/xmon: Fix invocation inside lock region + - powerpc/pseries/cpuidle: Fix preempt warning + - media: firewire: Fix app_info parameter type in avc_ca{,_app}_info + - ASoC: use dma_ops of parent device for acp_audio_dma + - media: venus: core: Set dma maximum segment size + - staging: erofs: fix use-after-free of on-stack `z_erofs_vle_unzip_io' + - net: call sk_dst_reset when set SO_DONTROUTE + - scsi: target: use consistent left-aligned ASCII INQUIRY data + - scsi: target/core: Make sure that target_wait_for_sess_cmds() waits long + enough + - [arm64] kasan: Increase stack size for KASAN_EXTRA + - clk: imx6q: reset exclusive gates on init + - [arm64] Fix minor issues with the dcache_by_line_op macro + - bpf: relax verifier restriction on BPF_MOV | BPF_ALU + - mmc: atmel-mci: do not assume idle after atmci_request_end + - btrfs: volumes: Make sure there is no overlap of dev extents at mount + time + - btrfs: alloc_chunk: fix more DUP stripe size handling + - btrfs: fix use-after-free due to race between replace start and cancel + - btrfs: improve error handling of btrfs_add_link + - tty/serial: do not free trasnmit buffer page under port lock + - perf intel-pt: Fix error with config term "pt=0" + - perf tests ARM: Disable breakpoint tests 32-bit + - perf svghelper: Fix unchecked usage of strncpy() + - perf parse-events: Fix unchecked usage of strncpy() + - perf vendor events intel: Fix Load_Miss_Real_Latency on SKL/SKX + - netfilter: ipt_CLUSTERIP: check MAC address when duplicate config is set + - netfilter: ipt_CLUSTERIP: remove wrong WARN_ON_ONCE in netns exit routine + - netfilter: ipt_CLUSTERIP: fix deadlock in netns exit routine + - [x86] topology: Use total_cpus for max logical packages calculation + - dm crypt: use u64 instead of sector_t to store iv_offset + - dm kcopyd: Fix bug causing workqueue stalls + - perf stat: Avoid segfaults caused by negated options + - tools lib subcmd: Don't add the kernel sources to the include path + - dm snapshot: Fix excessive memory usage and workqueue stalls + - perf cs-etm: Correct packets swapping in cs_etm__flush() + - perf tools: Add missing sigqueue() prototype for systems lacking it + - perf tools: Add missing open_memstream() prototype for systems lacking it + - quota: Lock s_umount in exclusive mode for Q_XQUOTA{ON,OFF} quotactls. + - clocksource/drivers/integrator-ap: Add missing of_node_put() + - dm: Check for device sector overflow if CONFIG_LBDAF is not set + - Bluetooth: btusb: Add support for Intel bluetooth device 8087:0029 + - ALSA: bebob: fix model-id of unit for Apogee Ensemble + - sysfs: Disable lockdep for driver bind/unbind files + - IB/usnic: Fix potential deadlock + - scsi: mpt3sas: fix memory ordering on 64bit writes + - scsi: smartpqi: correct lun reset issues + - ath10k: fix peer stats null pointer dereference + - scsi: smartpqi: call pqi_free_interrupts() in pqi_shutdown() + - scsi: megaraid: fix out-of-bound array accesses + - iomap: don't search past page end in iomap_is_partially_uptodate + - ocfs2: fix panic due to unrecovered local alloc + - mm/page-writeback.c: don't break integrity writeback on ->writepage() + error + - mm/swap: use nr_node_ids for avail_lists in swap_info_struct + - userfaultfd: clear flag if remap event not enabled + - mm, proc: be more verbose about unstable VMA flags in /proc//smaps + - iwlwifi: mvm: Send LQ command as async when necessary + - Bluetooth: Fix unnecessary error message for HCI request completion + - ipmi: fix use-after-free of user->release_barrier.rda + - ipmi: msghandler: Fix potential Spectre v1 vulnerabilities + - ipmi: Prevent use-after-free in deliver_response + - ipmi:ssif: Fix handling of multi-part return messages + - ipmi: Don't initialize anything in the core until something uses it + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.19 + - amd-xgbe: Fix mdio access for non-zero ports and clause 45 PHYs + - net: bridge: Fix ethernet header pointer before check skb forwardable + - net: Fix usage of pskb_trim_rcsum + - net: phy: marvell: Errata for mv88e6390 internal PHYs + - net: phy: mdio_bus: add missing device_del() in mdiobus_register() error + handling + - net/sched: act_tunnel_key: fix memory leak in case of action replace + - net_sched: refetch skb protocol for each filter + - openvswitch: Avoid OOB read when parsing flow nlattrs + - vhost: log dirty page correctly + - net: ipv4: Fix memory leak in network namespace dismantle + - net/sched: cls_flower: allocate mask dynamically in fl_change() + - udp: with udp_segment release on error path + - ip6_gre: fix tunnel list corruption for x-netns + - erspan: build the header with the right proto according to erspan_ver + - net: phy: marvell: Fix deadlock from wrong locking + - ip6_gre: update version related info when changing link + - tcp: allow MSG_ZEROCOPY transmission also in CLOSE_WAIT state + - mei: me: mark LBG devices as having dma support + - mei: me: add denverton innovation engine device IDs + - USB: leds: fix regression in usbport led trigger + - USB: serial: simple: add Motorola Tetra TPG2200 device id + - USB: serial: pl2303: add new PID to support PL2303TB + - ceph: clear inode pointer when snap realm gets dropped by its inode + - ASoC: atom: fix a missing check of snd_pcm_lib_malloc_pages + - ASoC: rt5514-spi: Fix potential NULL pointer dereference + - ASoC: tlv320aic32x4: Kernel OOPS while entering DAPM standby mode + - clk: socfpga: stratix10: fix rate calculation for pll clocks + - clk: socfpga: stratix10: fix naming convention for the fixed-clocks + - inotify: Fix fd refcount leak in inotify_add_watch(). + - ALSA: hda/realtek - Fix typo for ALC225 model + - ALSA: hda - Add mute LED support for HP ProBook 470 G5 + - ARCv2: lib: memeset: fix doing prefetchw outside of buffer + - ARC: adjust memblock_reserve of kernel memory + - ARC: perf: map generic branches to correct hardware condition + - s390/mm: always force a load of the primary ASCE on context switch + - s390/early: improve machine detection + - s390/smp: fix CPU hotplug deadlock with CPU rescan + - misc: ibmvsm: Fix potential NULL pointer dereference + - char/mwave: fix potential Spectre v1 vulnerability + - [arm64] mmc: dw_mmc-bluefield: : Fix the license information + - [arm64] mmc: meson-gx: Free irq in release() callback + - staging: rtl8188eu: Add device code for D-Link DWA-121 rev B1 + - tty: Handle problem if line discipline does not have receive_buf + - uart: Fix crash in uart_write and uart_put_char + - tty/n_hdlc: fix __might_sleep warning + - hv_balloon: avoid touching uninitialized struct page during tail onlining + - Drivers: hv: vmbus: Check for ring when getting debug info + - vgacon: unconfuse vc_origin when using soft scrollback + - CIFS: Fix possible hang during async MTU reads and writes + - CIFS: Fix credits calculations for reads with errors + - CIFS: Fix credit calculation for encrypted reads with errors + - CIFS: Do not reconnect TCP session in add_credits() + - smb3: add credits we receive from oplock/break PDUs + - Input: xpad - add support for SteelSeries Stratus Duo + - Input: input_event - provide override for sparc64 + - Input: uinput - fix undefined behavior in uinput_validate_absinfo() + - acpi/nfit: Block function zero DSMs + - acpi/nfit: Fix command-supported detection + - scsi: ufs: Use explicit access size in ufshcd_dump_regs + - dm thin: fix passdown_double_checking_shared_status() + - dm crypt: fix parsing of extended IV arguments + - [x86] drm/amdgpu: Add APTX quirk for Lenovo laptop + - [x86] KVM: Fix single-step debugging + - [x86] KVM: Fix PV IPIs for 32-bit KVM host + - [x86] KVM: WARN_ONCE if sending a PV IPI returns a fatal error + - [x86] kvm: vmx: Use kzalloc for cached_vmcs12 + - [x86] KVM/nVMX: Do not validate that posted_intr_desc_addr is page + aligned + - [x86] pkeys: Properly copy pkey state at fork() + - [x86] selftests/pkeys: Fork() to check for state being preserved + - [x86] kaslr: Fix incorrect i8254 outb() parameters + - [x86] entry/64/compat: Fix stack switching for XEN PV + - [arm64] irqchip/gic-v3-its: Align PCI Multi-MSI allocation on their size + - can: dev: __can_get_echo_skb(): fix bogous check for non-existing skb by + removing it + - can: bcm: check timer values before ktime conversion + - can: flexcan: fix NULL pointer exception during bringup + - vt: make vt_console_print() compatible with the unicode screen buffer + - vt: always call notifier with the console lock held + - vt: invoke notifier on screen size change + - [arm64] drm/meson: Fix atomic mode switching regression + - bpf: improve verifier branch analysis + - bpf: add per-insn complexity limit + - bpf: move {prev_,}insn_idx into verifier env + - bpf: move tmp variable into ax register in interpreter + - bpf: enable access to ax register also from verifier rewrite + - bpf: restrict map value pointer arithmetic for unprivileged + - bpf: restrict stack pointer arithmetic for unprivileged + - bpf: restrict unknown scalars of mixed signed bounds for unprivileged + - bpf: fix check_map_access smin_value test when pointer contains offset + - bpf: prevent out of bounds speculation on pointer arithmetic + (CVE-2019-7308) + - bpf: fix sanitation of alu op with pointer / scalar type from different + paths (CVE-2019-7308) + - bpf: fix inner map masking to prevent oob under speculation + - [s390*] smp: Fix calling smp_call_ipl_cpu() from ipl CPU + - nvmet-rdma: Add unlikely for response allocated check + - nvmet-rdma: fix null dereference under heavy load + - Revert "mm, memory_hotplug: initialize struct pages for the full memory + section" + - usb: dwc3: gadget: Clear req->needs_extra_trb flag on cleanup + - ide: fix a typo in the settings proc file name + - Input: input_event - fix the CONFIG_SPARC64 mixup + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.19.20 + - Fix "net: ipv4: do not handle duplicate fragments as overlapping" + - ipv6: sr: clear IP6CB(skb) on SRH ip4ip6 encapsulation + - ipvlan, l3mdev: fix broken l3s mode wrt local routes + - l2tp: copy 4 more bytes to linear part if necessary + - l2tp: fix reading optional fields of L2TPv3 + - net: ip_gre: always reports o_key to userspace + - net: ip_gre: use erspan key field for tunnel lookup + - net/mlx4_core: Add masking for a few queries on HCA caps + - netrom: switch to sock timer API + - net/rose: fix NULL ax25_cb kernel panic + - net: set default network namespace in init_dummy_netdev() + - sctp: improve the events for sctp stream reset + - tun: move the call to tun_set_real_num_queues + - vhost: fix OOB in get_rx_bufs() + (CVE-2018-16880) + - net: ip6_gre: always reports o_key to userspace + - sctp: improve the events for sctp stream adding + - net/mlx5e: Allow MAC invalidation while spoofchk is ON + - ip6mr: Fix notifiers call on mroute_clean_tables() + - sctp: set chunk transport correctly when it's a new asoc + - sctp: set flow sport from saddr only when it's 0 + - virtio_net: Don't enable NAPI when interface is down + - virtio_net: Don't call free_old_xmit_skbs for xdp_frames + - virtio_net: Fix not restoring real_num_rx_queues + - virtio_net: Fix out of bounds access of sq + - virtio_net: Don't process redirected XDP frames when XDP is disabled + - virtio_net: Use xdp_return_frame to free xdp_frames on destroying vqs + - virtio_net: Differentiate sk_buff and xdp_frame on freeing + - CIFS: Do not count -ENODATA as failure for query directory + - CIFS: Fix trace command logging for SMB2 reads and writes + - CIFS: Do not consider -ENODATA as stat failure for reads + - fs/dcache: Fix incorrect nr_dentry_unused accounting in + shrink_dcache_sb() + - iommu/vt-d: Fix memory leak in intel_iommu_put_resv_regions() + - NFS: Fix up return value on fatal errors in nfs_page_async_flush() + - [arm64] kaslr: ensure randomized quantities are clean also when kaslr is + off + - [arm64] Do not issue IPIs for user executable ptes + - [arm64] hyp-stub: Forbid kprobing of the hyp-stub + - [arm64] hibernate: Clean the __hyp_text to PoC after resume + - gpiolib: fix line event timestamps for nested irqs + - gpio: pcf857x: Fix interrupts on multiple instances + - gfs2: Revert "Fix loop in gfs2_rbm_find" + - [arm*] mmc: bcm2835: Fix DMA channel leak on probe error + - mmc: mediatek: fix incorrect register setting of hs400_cmd_int_delay + - ALSA: usb-audio: Add Opus #3 to quirks for native DSD support + - ALSA: hda/realtek - Fixed hp_pin no value + - IB/hfi1: Remove overly conservative VM_EXEC flag check + - [x86] platform: asus-nb-wmi: Map 0x35 to KEY_SCREENLOCK + - [x86] platform: asus-nb-wmi: Drop mapping of 0x33 and 0x34 scan codes + - mmc: sdhci-iproc: handle mmc_of_parse() errors during probe + - Btrfs: fix deadlock when allocating tree block during leaf/node split + - btrfs: On error always free subvol_name in btrfs_mount + - kernel/exit.c: release ptraced tasks before zap_pid_ns_processes + - mm/hugetlb.c: teach follow_hugetlb_page() to handle FOLL_NOWAIT + - oom, oom_reaper: do not enqueue same task twice + - mm,memory_hotplug: fix scan_movable_pages() for gigantic hugepages + - mm, oom: fix use-after-free in oom_kill_process + - mm: hwpoison: use do_send_sig_info() instead of force_sig() + - mm: migrate: don't rely on __PageMovable() of newpage after unlocking it + - of: Convert to using %pOFn instead of device_node.name + - of: overlay: add tests to validate kfrees from overlay removal + - of: overlay: add missing of_node_get() in __of_attach_node_sysfs + - of: overlay: use prop add changeset entry for property in new nodes + - of: overlay: do not duplicate properties from overlay for new nodes + - md/raid5: fix 'out of memory' during raid cache recovery + - cifs: Always resolve hostname before reconnecting [ Luca Boccassi ] * Do not generate linux-source-$ver stanza in debian/control if diff --git a/debian/patches/bugfix/all/disable-some-marvell-phys.patch b/debian/patches/bugfix/all/disable-some-marvell-phys.patch index 7c07b2755..4ed38afaf 100644 --- a/debian/patches/bugfix/all/disable-some-marvell-phys.patch +++ b/debian/patches/bugfix/all/disable-some-marvell-phys.patch @@ -14,9 +14,11 @@ correctness. [bwh: Also #if-out the init functions for these PHYs to avoid compiler warnings] ---- a/drivers/net/phy/marvell.c -+++ b/drivers/net/phy/marvell.c -@@ -928,6 +928,7 @@ static int m88e1118_config_init(struct p +Index: linux/drivers/net/phy/marvell.c +=================================================================== +--- linux.orig/drivers/net/phy/marvell.c ++++ linux/drivers/net/phy/marvell.c +@@ -962,6 +962,7 @@ static int m88e1118_config_init(struct p return genphy_soft_reset(phydev); } @@ -24,7 +26,7 @@ correctness. static int m88e1149_config_init(struct phy_device *phydev) { int err; -@@ -953,7 +954,9 @@ static int m88e1149_config_init(struct p +@@ -987,7 +988,9 @@ static int m88e1149_config_init(struct p return genphy_soft_reset(phydev); } @@ -34,15 +36,15 @@ correctness. static int m88e1145_config_init_rgmii(struct phy_device *phydev) { int err; -@@ -1028,6 +1031,7 @@ static int m88e1145_config_init(struct p +@@ -1062,6 +1065,7 @@ static int m88e1145_config_init(struct p return 0; } +#endif - /** - * fiber_lpa_to_ethtool_lpa_t -@@ -2102,6 +2106,7 @@ static struct phy_driver marvell_drivers + /* The VOD can be out of specification on link up. Poke an + * undocumented register, in an undocumented page, with a magic value +@@ -2175,6 +2179,7 @@ static struct phy_driver marvell_drivers .get_strings = marvell_get_strings, .get_stats = marvell_get_stats, }, @@ -50,7 +52,7 @@ correctness. { .phy_id = MARVELL_PHY_ID_88E1145, .phy_id_mask = MARVELL_PHY_ID_MASK, -@@ -2122,6 +2127,8 @@ static struct phy_driver marvell_drivers +@@ -2195,6 +2200,8 @@ static struct phy_driver marvell_drivers .get_strings = marvell_get_strings, .get_stats = marvell_get_stats, }, @@ -59,7 +61,7 @@ correctness. { .phy_id = MARVELL_PHY_ID_88E1149R, .phy_id_mask = MARVELL_PHY_ID_MASK, -@@ -2141,6 +2148,8 @@ static struct phy_driver marvell_drivers +@@ -2214,6 +2221,8 @@ static struct phy_driver marvell_drivers .get_strings = marvell_get_strings, .get_stats = marvell_get_stats, }, @@ -68,7 +70,7 @@ correctness. { .phy_id = MARVELL_PHY_ID_88E1240, .phy_id_mask = MARVELL_PHY_ID_MASK, -@@ -2160,6 +2169,7 @@ static struct phy_driver marvell_drivers +@@ -2233,6 +2242,7 @@ static struct phy_driver marvell_drivers .get_strings = marvell_get_strings, .get_stats = marvell_get_stats, }, @@ -76,7 +78,7 @@ correctness. { .phy_id = MARVELL_PHY_ID_88E1116R, .phy_id_mask = MARVELL_PHY_ID_MASK, -@@ -2296,9 +2306,9 @@ static struct mdio_device_id __maybe_unu +@@ -2369,9 +2379,9 @@ static struct mdio_device_id __maybe_unu { MARVELL_PHY_ID_88E1111, MARVELL_PHY_ID_MASK }, { MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK }, { MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK }, diff --git a/debian/patches/bugfix/all/ipv6-Consider-sk_bound_dev_if-when-binding-a-socket-.patch b/debian/patches/bugfix/all/ipv6-Consider-sk_bound_dev_if-when-binding-a-socket-.patch deleted file mode 100644 index 0afc1f915..000000000 --- a/debian/patches/bugfix/all/ipv6-Consider-sk_bound_dev_if-when-binding-a-socket-.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: David Ahern -Date: Wed, 2 Jan 2019 18:57:09 -0800 -Subject: ipv6: Consider sk_bound_dev_if when binding a socket to an address -Origin: https://git.kernel.org/linus/c5ee066333ebc322a24a00a743ed941a0c68617e -Bug-Debian: https://bugs.debian.org/918103 - -IPv6 does not consider if the socket is bound to a device when binding -to an address. The result is that a socket can be bound to eth0 and then -bound to the address of eth1. If the device is a VRF, the result is that -a socket can only be bound to an address in the default VRF. - -Resolve by considering the device if sk_bound_dev_if is set. - -This problem exists from the beginning of git history. - -Signed-off-by: David Ahern -Signed-off-by: David S. Miller ---- - net/ipv6/af_inet6.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c -index f0cd291034f0..0bfb6cc0a30a 100644 ---- a/net/ipv6/af_inet6.c -+++ b/net/ipv6/af_inet6.c -@@ -350,6 +350,9 @@ static int __inet6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len, - err = -EINVAL; - goto out_unlock; - } -+ } -+ -+ if (sk->sk_bound_dev_if) { - dev = dev_get_by_index_rcu(net, sk->sk_bound_dev_if); - if (!dev) { - err = -ENODEV; --- -2.20.1 - diff --git a/debian/patches/bugfix/all/posix-cpu-timers-Unbreak-timer-rearming.patch b/debian/patches/bugfix/all/posix-cpu-timers-Unbreak-timer-rearming.patch deleted file mode 100644 index dec4c64f9..000000000 --- a/debian/patches/bugfix/all/posix-cpu-timers-Unbreak-timer-rearming.patch +++ /dev/null @@ -1,52 +0,0 @@ -From: Thomas Gleixner -Date: Fri, 11 Jan 2019 14:33:16 +0100 -Subject: posix-cpu-timers: Unbreak timer rearming -Origin: https://lore.kernel.org/lkml/20190111133500.840117406@linutronix.de/ -Bug-Debian: https://bugs.debian.org/919019 -Bug-Debian: https://bugs.debian.org/919049 - -The recent commit which prevented a division by 0 issue in the alarm timer -code broke posix CPU timers as an unwanted side effect. - -The reason is that the common rearm code checks for timer->it_interval -being 0 now. What went unnoticed is that the posix cpu timer setup does not -initialize timer->it_interval as it stores the interval in CPU timer -specific storage. The reason for the separate storage is historical as the -posix CPU timers always had a 64bit nanoseconds representation internally -while timer->it_interval is type ktime_t which used to be a modified -timespec representation on 32bit machines. - -Instead of reverting the offending commit and fixing the alarmtimer issue -in the alarmtimer code, store the interval in timer->it_interval at CPU -timer setup time so the common code check works. This also repairs the -existing inconistency of the posix CPU timer code which kept a single shot -timer armed despite of the interval being 0. - -The separate storage can be removed in mainline, but that needs to be a -separate commit as the current one has to be backported to stable kernels. - -Fixes: 0e334db6bb4b ("posix-timers: Fix division by zero bug") -Reported-by: H.J. Lu -Signed-off-by: Thomas Gleixner -Cc: stable@vger.kernel.org -Cc: Peter Zijlstra -Cc: John Stultz ---- - kernel/time/posix-cpu-timers.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c -index 8f0644af40be..80f955210861 100644 ---- a/kernel/time/posix-cpu-timers.c -+++ b/kernel/time/posix-cpu-timers.c -@@ -685,6 +685,7 @@ static int posix_cpu_timer_set(struct k_itimer *timer, int timer_flags, - * set up the signal and overrun bookkeeping. - */ - timer->it.cpu.incr = timespec64_to_ns(&new->it_interval); -+ timer->it_interval = ns_to_ktime(timer->it.cpu.incr); - - /* - * This acts as a modification timestamp for the timer, --- -2.20.1 - diff --git a/debian/patches/series b/debian/patches/series index afd30d312..6dfce01cf 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -99,8 +99,6 @@ bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch debian/revert-objtool-fix-config_stack_validation-y-warning.patch -bugfix/all/ipv6-Consider-sk_bound_dev_if-when-binding-a-socket-.patch -bugfix/all/posix-cpu-timers-Unbreak-timer-rearming.patch bugfix/all/percpu-convert-spin_lock_irq-to-spin_lock_irqsave.patch # Miscellaneous features