powerpc/iseries: Kexec is known not to work on iseries
authorMichael Ellerman <michael@ellerman.id.au>
Mon, 22 Dec 2008 23:23:18 +0000 (23:23 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 8 Jan 2009 05:25:10 +0000 (16:25 +1100)
The non-zero return from the prepare callback is returned by sys_kexec_load()
to userspace, indicating that kexec is not supported on the machine.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/platforms/iseries/setup.c

index 70b688c..24519b9 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/string.h>
 #include <linux/seq_file.h>
 #include <linux/kdev_t.h>
+#include <linux/kexec.h>
 #include <linux/major.h>
 #include <linux/root_dev.h>
 #include <linux/kernel.h>
@@ -638,6 +639,13 @@ static int __init iseries_probe(void)
        return 1;
 }
 
+#ifdef CONFIG_KEXEC
+static int iseries_kexec_prepare(struct kimage *image)
+{
+       return -ENOSYS;
+}
+#endif
+
 define_machine(iseries) {
        .name                   = "iSeries",
        .setup_arch             = iSeries_setup_arch,
@@ -658,6 +666,9 @@ define_machine(iseries) {
        .probe                  = iseries_probe,
        .ioremap                = iseries_ioremap,
        .iounmap                = iseries_iounmap,
+#ifdef CONFIG_KEXEC
+       .machine_kexec_prepare  = iseries_kexec_prepare,
+#endif
        /* XXX Implement enable_pmcs for iSeries */
 };