aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/kernel/cpu/mcheck
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2011-12-15 10:48:12 -0800
committerTony Luck <tony.luck@intel.com>2012-01-03 12:06:32 -0800
commitcd42f4a3b2b1c4cbd997363dc57821953d73fd87 (patch)
treec7db057922def7f742fbcd283324051bdd92b053 /arch/x86/kernel/cpu/mcheck
parentdc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50 (diff)
HWPOISON: Clean up memory_failure() vs. __memory_failure()
There is only one caller of memory_failure(), all other users call __memory_failure() and pass in the flags argument explicitly. The lone user of memory_failure() will soon need to pass flags too. Add flags argument to the callsite in mce.c. Delete the old memory_failure() function, and then rename __memory_failure() without the leading "__". Provide clearer message when action optional memory errors are ignored. Acked-by: Borislav Petkov <bp@amd64.org> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/x86/kernel/cpu/mcheck')
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 2af127d4c3d..1a08ce5f345 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1046,11 +1046,15 @@ out:
}
EXPORT_SYMBOL_GPL(do_machine_check);
-/* dummy to break dependency. actual code is in mm/memory-failure.c */
-void __attribute__((weak)) memory_failure(unsigned long pfn, int vector)
+#ifndef CONFIG_MEMORY_FAILURE
+int memory_failure(unsigned long pfn, int vector, int flags)
{
- printk(KERN_ERR "Action optional memory failure at %lx ignored\n", pfn);
+ printk(KERN_ERR "Uncorrected memory error in page 0x%lx ignored\n"
+ "Rebuild kernel with CONFIG_MEMORY_FAILURE=y for smarter handling\n", pfn);
+
+ return 0;
}
+#endif
/*
* Called after mce notification in process context. This code
@@ -1068,7 +1072,7 @@ void mce_notify_process(void)
unsigned long pfn;
mce_notify_irq();
while (mce_ring_get(&pfn))
- memory_failure(pfn, MCE_VECTOR);
+ memory_failure(pfn, MCE_VECTOR, 0);
}
static void mce_process_work(struct work_struct *dummy)