summaryrefslogtreecommitdiffstats
path: root/drivers/irqchip
diff options
context:
space:
mode:
authorThomas Gleixner2014-08-05 22:57:19 +0200
committerLinus Torvalds2014-08-06 02:34:33 +0200
commited5c41d30ef2ce578fd6b6e2f7ec23f2a58b1eba (patch)
tree92e9da8fa9be8d12fb5ebd00ab89ba4feb68be34 /drivers/irqchip
parentMerge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git... (diff)
downloadkernel-qcow2-linux-ed5c41d30ef2ce578fd6b6e2f7ec23f2a58b1eba.tar.gz
kernel-qcow2-linux-ed5c41d30ef2ce578fd6b6e2f7ec23f2a58b1eba.tar.xz
kernel-qcow2-linux-ed5c41d30ef2ce578fd6b6e2f7ec23f2a58b1eba.zip
x86: MCE: Add raw_lock conversion again
Commit ea431643d6c3 ("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 59d958d2c7de ("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>
Diffstat (limited to 'drivers/irqchip')
0 files changed, 0 insertions, 0 deletions