linux_dsm_epyc7002/arch/x86/kernel/cpu/mcheck
Thomas Gleixner ed5c41d30e x86: MCE: Add raw_lock conversion again
Commit ea431643d6 ("x86/mce: Fix CMCI preemption bugs") breaks RT by
the completely unrelated conversion of the cmci_discover_lock to a
regular (non raw) spinlock.  This lock was annotated in commit
59d958d2c7 ("locking, x86: mce: Annotate cmci_discover_lock as raw")
with a proper explanation why.

The argument for converting the lock back to a regular spinlock was:

 - it does percpu ops without disabling preemption. Preemption is not
   disabled due to the mistaken use of a raw spinlock.

Which is complete nonsense.  The raw_spinlock is disabling preemption in
the same way as a regular spinlock.  In mainline spinlock maps to
raw_spinlock, in RT spinlock becomes a "sleeping" lock.

raw_spinlock has on RT exactly the same semantics as in mainline.  And
because this lock is taken in non preemptible context it must be raw on
RT.

Undo the locking brainfart.

Reported-by: Clark Williams <williams@redhat.com>
Reported-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-08-05 17:34:33 -07:00
..
Makefile ACPI, APEI, Generic Hardware Error Source memory error support 2010-05-19 22:41:16 -04:00
mce_amd.c x86: delete __cpuinit usage from all x86 files 2013-07-14 19:36:56 -04:00
mce_intel.c x86: MCE: Add raw_lock conversion again 2014-08-05 17:34:33 -07:00
mce-apei.c ACPI, APEI, GHES: Do not report only correctable errors with SCI 2013-12-21 13:31:06 +01:00
mce-inject.c x86, mce: Fix "braodcast" typo 2013-06-05 11:59:17 +02:00
mce-internal.h mce: acpi/apei: Honour Firmware First for MCA banks listed in APEI HEST CMC 2013-07-08 11:53:01 -07:00
mce-severity.c x86/mce: Fix mce regression from recent cleanup 2013-07-29 11:23:27 -07:00
mce.c x86, MCE: Robustify mcheck_init_device 2014-06-24 15:17:01 +02:00
p5.c x86: Delete non-required instances of include <linux/init.h> 2014-01-06 21:25:18 -08:00
therm_throt.c asmlinkage, x86: Add explicit __visible to arch/x86/* 2014-05-05 16:07:44 -07:00
threshold.c asmlinkage, x86: Add explicit __visible to arch/x86/* 2014-05-05 16:07:44 -07:00
winchip.c x86: Delete non-required instances of include <linux/init.h> 2014-01-06 21:25:18 -08:00