{
        if (ppc_md.machine_crash_shutdown)
                ppc_md.machine_crash_shutdown(regs);
+       else
+               default_machine_crash_shutdown(regs);
 }
 
 /*
 {
        if (ppc_md.machine_kexec_prepare)
                return ppc_md.machine_kexec_prepare(image);
-       /*
-        * Fail if platform doesn't provide its own machine_kexec_prepare
-        * implementation.
-        */
-       return -ENOSYS;
+       else
+               return default_machine_kexec_prepare(image);
 }
 
 void machine_kexec_cleanup(struct kimage *image)
 {
        if (ppc_md.machine_kexec)
                ppc_md.machine_kexec(image);
-       else {
-               /*
-                * Fall back to normal restart if platform doesn't provide
-                * its own kexec function, and user insist to kexec...
-                */
-               machine_restart(NULL);
-       }
+       else
+               default_machine_kexec(image);
+
+       /* Fall back to normal restart if we're still alive. */
+       machine_restart(NULL);
        for(;;);
 }