]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Apr 2024 09:34:35 +0000 (11:34 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Apr 2024 09:34:35 +0000 (11:34 +0200)
added patches:
x86-mce-make-sure-to-grab-mce_sysfs_mutex-in-set_bank.patch

queue-5.10/series
queue-5.10/x86-mce-make-sure-to-grab-mce_sysfs_mutex-in-set_bank.patch [new file with mode: 0644]

index 03aef3ca5f6bcc7c585c01145551e4e15afafde5..b5cc910500c6fb8d389d5435f04381d7f85ae8a9 100644 (file)
@@ -236,3 +236,4 @@ ata-sata_mv-fix-pci-device-id-table-declaration-comp.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.10/x86-mce-make-sure-to-grab-mce_sysfs_mutex-in-set_bank.patch b/queue-5.10/x86-mce-make-sure-to-grab-mce_sysfs_mutex-in-set_bank.patch
new file mode 100644 (file)
index 0000000..9de794e
--- /dev/null
@@ -0,0 +1,67 @@
+From 3ddf944b32f88741c303f0b21459dbb3872b8bc5 Mon Sep 17 00:00:00 2001
+From: "Borislav Petkov (AMD)" <bp@alien8.de>
+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) <bp@alien8.de>
+
+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 <samsun1006219@gmail.com>
+Reported by: xingwei lee <xrivendell7@gmail.com>
+Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
+Cc: <stable@kernel.org>
+Link: https://lore.kernel.org/r/CAEkJfYNiENwQY8yV1LYJ9LjJs%2Bx_-PqMv98gKig55=2vbzffRw@mail.gmail.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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
+@@ -2389,12 +2389,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;
+ }