sh: kexec jump: fix for ftrace.
authorPaul Mundt <lethal@linux-sh.org>
Wed, 18 Mar 2009 10:07:16 +0000 (19:07 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 18 Mar 2009 10:07:16 +0000 (19:07 +0900)
Save and restore ftrace state when returning from kexec jump in
machine_kexec(). Follows the x86 change.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/machine_kexec.c

index 69268c0d8063ae8217f41eaa8d9d18d135c069e3..cc7c29b0dc8d3fb229f43447190bf8a5a5a50607 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/delay.h>
 #include <linux/reboot.h>
 #include <linux/numa.h>
+#include <linux/ftrace.h>
 #include <linux/suspend.h>
 #include <asm/pgtable.h>
 #include <asm/pgalloc.h>
@@ -78,6 +79,7 @@ void machine_kexec(struct kimage *image)
        relocate_new_kernel_t rnk;
        unsigned long entry;
        unsigned long *ptr;
+       int save_ftrace_enabled;
 
        /*
         * Nicked from the mips version of machine_kexec():
@@ -97,6 +99,8 @@ void machine_kexec(struct kimage *image)
                save_processor_state();
 #endif
 
+       save_ftrace_enabled = __ftrace_enabled_save();
+
        /* Interrupts aren't acceptable while we reboot */
        local_irq_disable();
 
@@ -138,6 +142,8 @@ void machine_kexec(struct kimage *image)
                        *ptr = virt_to_phys(*ptr);
        }
 #endif
+
+       __ftrace_enabled_restore(save_ftrace_enabled);
 }
 
 void arch_crash_save_vmcoreinfo(void)