From: Greg Kroah-Hartman Date: Sun, 14 Sep 2025 16:35:58 +0000 (+0200) Subject: 6.12-stable patches X-Git-Tag: v6.1.153~35 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=92ccdd08e2165da9545e3a63abfc5be28576cb67;p=thirdparty%2Fkernel%2Fstable-queue.git 6.12-stable patches added patches: hrtimers-unconditionally-update-target-cpu-base-after-offline-timer-migration.patch input-i8042-add-tuxedo-infinitybook-pro-gen10-amd-to-i8042-quirk-table.patch input-iqs7222-avoid-enabling-unused-interrupts.patch --- diff --git a/queue-6.12/hrtimers-unconditionally-update-target-cpu-base-after-offline-timer-migration.patch b/queue-6.12/hrtimers-unconditionally-update-target-cpu-base-after-offline-timer-migration.patch new file mode 100644 index 0000000000..54b2f38878 --- /dev/null +++ b/queue-6.12/hrtimers-unconditionally-update-target-cpu-base-after-offline-timer-migration.patch @@ -0,0 +1,73 @@ +From e895f8e29119c8c966ea794af9e9100b10becb88 Mon Sep 17 00:00:00 2001 +From: Xiongfeng Wang +Date: Tue, 5 Aug 2025 16:10:25 +0800 +Subject: hrtimers: Unconditionally update target CPU base after offline timer migration + +From: Xiongfeng Wang + +commit e895f8e29119c8c966ea794af9e9100b10becb88 upstream. + +When testing softirq based hrtimers on an ARM32 board, with high resolution +mode and NOHZ inactive, softirq based hrtimers fail to expire after being +moved away from an offline CPU: + +CPU0 CPU1 + hrtimer_start(..., HRTIMER_MODE_SOFT); +cpu_down(CPU1) ... + hrtimers_cpu_dying() + // Migrate timers to CPU0 + smp_call_function_single(CPU0, returgger_next_event); + retrigger_next_event() + if (!highres && !nohz) + return; + +As retrigger_next_event() is a NOOP when both high resolution timers and +NOHZ are inactive CPU0's hrtimer_cpu_base::softirq_expires_next is not +updated and the migrated softirq timers never expire unless there is a +softirq based hrtimer queued on CPU0 later. + +Fix this by removing the hrtimer_hres_active() and tick_nohz_active() check +in retrigger_next_event(), which enforces a full update of the CPU base. +As this is not a fast path the extra cost does not matter. + +[ tglx: Massaged change log ] + +Fixes: 5c0930ccaad5 ("hrtimers: Push pending hrtimers away from outgoing CPU earlier") +Co-developed-by: Frederic Weisbecker +Signed-off-by: Frederic Weisbecker +Signed-off-by: Xiongfeng Wang +Signed-off-by: Thomas Gleixner +Link: https://lore.kernel.org/all/20250805081025.54235-1-wangxiongfeng2@huawei.com +Signed-off-by: Greg Kroah-Hartman +--- + kernel/time/hrtimer.c | 11 +++-------- + 1 file changed, 3 insertions(+), 8 deletions(-) + +--- a/kernel/time/hrtimer.c ++++ b/kernel/time/hrtimer.c +@@ -798,10 +798,10 @@ static void retrigger_next_event(void *a + * of the next expiring timer is enough. The return from the SMP + * function call will take care of the reprogramming in case the + * CPU was in a NOHZ idle sleep. ++ * ++ * In periodic low resolution mode, the next softirq expiration ++ * must also be updated. + */ +- if (!hrtimer_hres_active(base) && !tick_nohz_active) +- return; +- + raw_spin_lock(&base->lock); + hrtimer_update_base(base); + if (hrtimer_hres_active(base)) +@@ -2286,11 +2286,6 @@ int hrtimers_cpu_dying(unsigned int dyin + &new_base->clock_base[i]); + } + +- /* +- * The migration might have changed the first expiring softirq +- * timer on this CPU. Update it. +- */ +- __hrtimer_get_next_event(new_base, HRTIMER_ACTIVE_SOFT); + /* Tell the other CPU to retrigger the next event */ + smp_call_function_single(ncpu, retrigger_next_event, NULL, 0); + diff --git a/queue-6.12/input-i8042-add-tuxedo-infinitybook-pro-gen10-amd-to-i8042-quirk-table.patch b/queue-6.12/input-i8042-add-tuxedo-infinitybook-pro-gen10-amd-to-i8042-quirk-table.patch new file mode 100644 index 0000000000..89d8404024 --- /dev/null +++ b/queue-6.12/input-i8042-add-tuxedo-infinitybook-pro-gen10-amd-to-i8042-quirk-table.patch @@ -0,0 +1,46 @@ +From 1939a9fcb80353dd8b111aa1e79c691afbde08b4 Mon Sep 17 00:00:00 2001 +From: Christoffer Sandberg +Date: Tue, 26 Aug 2025 16:26:06 +0200 +Subject: Input: i8042 - add TUXEDO InfinityBook Pro Gen10 AMD to i8042 quirk table + +From: Christoffer Sandberg + +commit 1939a9fcb80353dd8b111aa1e79c691afbde08b4 upstream. + +Occasionally wakes up from suspend with missing input on the internal +keyboard. Setting the quirks appears to fix the issue for this device as +well. + +Signed-off-by: Christoffer Sandberg +Signed-off-by: Werner Sembach +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/r/20250826142646.13516-1-wse@tuxedocomputers.com +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/input/serio/i8042-acpipnpio.h | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +--- a/drivers/input/serio/i8042-acpipnpio.h ++++ b/drivers/input/serio/i8042-acpipnpio.h +@@ -1155,6 +1155,20 @@ static const struct dmi_system_id i8042_ + .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | + SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) + }, ++ { ++ .matches = { ++ DMI_MATCH(DMI_BOARD_NAME, "XxHP4NAx"), ++ }, ++ .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | ++ SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) ++ }, ++ { ++ .matches = { ++ DMI_MATCH(DMI_BOARD_NAME, "XxKK4NAx_XxSP4NAx"), ++ }, ++ .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | ++ SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) ++ }, + /* + * A lot of modern Clevo barebones have touchpad and/or keyboard issues + * after suspend fixable with the forcenorestore quirk. diff --git a/queue-6.12/input-iqs7222-avoid-enabling-unused-interrupts.patch b/queue-6.12/input-iqs7222-avoid-enabling-unused-interrupts.patch new file mode 100644 index 0000000000..568ddc1c89 --- /dev/null +++ b/queue-6.12/input-iqs7222-avoid-enabling-unused-interrupts.patch @@ -0,0 +1,37 @@ +From c9ddc41cdd522f2db5d492eda3df8994d928be34 Mon Sep 17 00:00:00 2001 +From: Jeff LaBundy +Date: Sun, 17 Aug 2025 19:20:22 -0500 +Subject: Input: iqs7222 - avoid enabling unused interrupts + +From: Jeff LaBundy + +commit c9ddc41cdd522f2db5d492eda3df8994d928be34 upstream. + +If a proximity event node is defined so as to specify the wake-up +properties of the touch surface, the proximity event interrupt is +enabled unconditionally. This may result in unwanted interrupts. + +Solve this problem by enabling the interrupt only if the event is +mapped to a key or switch code. + +Signed-off-by: Jeff LaBundy +Link: https://lore.kernel.org/r/aKJxxgEWpNaNcUaW@nixie71 +Cc: stable@vger.kernel.org +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/input/misc/iqs7222.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/input/misc/iqs7222.c ++++ b/drivers/input/misc/iqs7222.c +@@ -2430,6 +2430,9 @@ static int iqs7222_parse_chan(struct iqs + if (error) + return error; + ++ if (!iqs7222->kp_type[chan_index][i]) ++ continue; ++ + if (!dev_desc->event_offset) + continue; + diff --git a/queue-6.12/series b/queue-6.12/series index 13b362c8ce..80466d6278 100644 --- a/queue-6.12/series +++ b/queue-6.12/series @@ -82,3 +82,6 @@ mm-hugetlb-add-missing-hugetlb_lock-in-__unmap_hugepage_range.patch mtd-spinand-winbond-fix-oob_layout-for-w25n01jw.patch btrfs-use-readahead_expand-on-compressed-extents.patch btrfs-fix-corruption-reading-compressed-range-when-block-size-is-smaller-than-page-size.patch +hrtimers-unconditionally-update-target-cpu-base-after-offline-timer-migration.patch +input-iqs7222-avoid-enabling-unused-interrupts.patch +input-i8042-add-tuxedo-infinitybook-pro-gen10-amd-to-i8042-quirk-table.patch