From 5d30d9525ad3f184e2bf3790ab5de573dc82e558 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 27 Mar 2012 09:02:02 -0400 Subject: [PATCH] Apply patch to fix MCE rcu splat (rhbz 789644) --- kernel.spec | 11 ++++++++++- mcelog-rcu-splat.patch | 15 +++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 mcelog-rcu-splat.patch diff --git a/kernel.spec b/kernel.spec index 8284e1838..b3e584d51 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 5 +%global baserelease 6 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -756,6 +756,9 @@ Patch21233: jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch #rhbz 754518 #Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch +#rhbz 789644 +Patch21237: mcelog-rcu-splat.patch + #rhbz 727865 730007 Patch21240: ACPICA-Fix-regression-in-FADT-revision-checks.patch @@ -1419,6 +1422,9 @@ ApplyPatch jbd2-clear-BH_Delay-and-BH_Unwritten-in-journal_unmap_buf.patch #rhbz 754518 #ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch +#rhbz 789644 +ApplyPatch mcelog-rcu-splat.patch + #rhbz 727865 730007 ApplyPatch ACPICA-Fix-regression-in-FADT-revision-checks.patch @@ -2178,6 +2184,9 @@ fi # and build. %changelog +* Tue Mar 27 2012 Josh Boyer +- Apply patch to fix MCE rcu splat (rhbz 789644) + * Fri Mar 23 2012 Dave Jones - Apply patches that should solve the bluetooth use-after-free oopses. (rhbz 806033) diff --git a/mcelog-rcu-splat.patch b/mcelog-rcu-splat.patch new file mode 100644 index 000000000..12c1fe3ea --- /dev/null +++ b/mcelog-rcu-splat.patch @@ -0,0 +1,15 @@ +diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c +index f22a9f7..f525f99 100644 +--- a/arch/x86/kernel/cpu/mcheck/mce.c ++++ b/arch/x86/kernel/cpu/mcheck/mce.c +@@ -191,7 +191,7 @@ static void drain_mcelog_buffer(void) + { + unsigned int next, i, prev = 0; + +- next = rcu_dereference_check_mce(mcelog.next); ++ next = ACCESS_ONCE(mcelog.next); + + do { + struct mce *m; + + \ No newline at end of file