From: Greg Kroah-Hartman Date: Mon, 8 Apr 2024 09:44:42 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v5.15.154~43 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9b437cf69b4eb85c3b1c1ea274687cd13396eb3a;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: x86-mce-make-sure-to-grab-mce_sysfs_mutex-in-set_bank.patch --- diff --git a/queue-5.15/series b/queue-5.15/series index 8e28bc2fb22..d65a538ccd6 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -678,3 +678,4 @@ fs-pipe-fix-lockdep-false-positive-in-watchqueue-pip.patch alsa-hda-realtek-update-panasonic-cf-sz6-quirk-to-support-headset-with-microphone.patch driver-core-introduce-device_link_wait_removal.patch of-dynamic-synchronize-of_changeset_destroy-with-the-devlink-removals.patch +x86-mce-make-sure-to-grab-mce_sysfs_mutex-in-set_bank.patch diff --git a/queue-5.15/x86-mce-make-sure-to-grab-mce_sysfs_mutex-in-set_bank.patch b/queue-5.15/x86-mce-make-sure-to-grab-mce_sysfs_mutex-in-set_bank.patch new file mode 100644 index 00000000000..5ee335f7603 --- /dev/null +++ b/queue-5.15/x86-mce-make-sure-to-grab-mce_sysfs_mutex-in-set_bank.patch @@ -0,0 +1,67 @@ +From 3ddf944b32f88741c303f0b21459dbb3872b8bc5 Mon Sep 17 00:00:00 2001 +From: "Borislav Petkov (AMD)" +Date: Wed, 13 Mar 2024 14:48:27 +0100 +Subject: x86/mce: Make sure to grab mce_sysfs_mutex in set_bank() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Borislav Petkov (AMD) + +commit 3ddf944b32f88741c303f0b21459dbb3872b8bc5 upstream. + +Modifying a MCA bank's MCA_CTL bits which control which error types to +be reported is done over + + /sys/devices/system/machinecheck/ + ├── machinecheck0 + │   ├── bank0 + │   ├── bank1 + │   ├── bank10 + │   ├── bank11 + ... + +sysfs nodes by writing the new bit mask of events to enable. + +When the write is accepted, the kernel deletes all current timers and +reinits all banks. + +Doing that in parallel can lead to initializing a timer which is already +armed and in the timer wheel, i.e., in use already: + + ODEBUG: init active (active state 0) object: ffff888063a28000 object + type: timer_list hint: mce_timer_fn+0x0/0x240 arch/x86/kernel/cpu/mce/core.c:2642 + WARNING: CPU: 0 PID: 8120 at lib/debugobjects.c:514 + debug_print_object+0x1a0/0x2a0 lib/debugobjects.c:514 + +Fix that by grabbing the sysfs mutex as the rest of the MCA sysfs code +does. + +Reported by: Yue Sun +Reported by: xingwei lee +Signed-off-by: Borislav Petkov (AMD) +Cc: +Link: https://lore.kernel.org/r/CAEkJfYNiENwQY8yV1LYJ9LjJs%2Bx_-PqMv98gKig55=2vbzffRw@mail.gmail.com +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/kernel/cpu/mce/core.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/arch/x86/kernel/cpu/mce/core.c ++++ b/arch/x86/kernel/cpu/mce/core.c +@@ -2382,12 +2382,14 @@ static ssize_t set_bank(struct device *s + return -EINVAL; + + b = &per_cpu(mce_banks_array, s->id)[bank]; +- + if (!b->init) + return -ENODEV; + + b->ctl = new; ++ ++ mutex_lock(&mce_sysfs_mutex); + mce_restart(); ++ mutex_unlock(&mce_sysfs_mutex); + + return size; + }