diff options
-rw-r--r-- | arch/sh/kernel/machine_kexec.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/sh/kernel/machine_kexec.c b/arch/sh/kernel/machine_kexec.c index c44efb73ab1a..69268c0d8063 100644 --- a/arch/sh/kernel/machine_kexec.c +++ b/arch/sh/kernel/machine_kexec.c | |||
@@ -110,23 +110,22 @@ void machine_kexec(struct kimage *image) | |||
110 | memcpy((void *)reboot_code_buffer, relocate_new_kernel, | 110 | memcpy((void *)reboot_code_buffer, relocate_new_kernel, |
111 | relocate_new_kernel_size); | 111 | relocate_new_kernel_size); |
112 | 112 | ||
113 | kexec_info(image); | 113 | kexec_info(image); |
114 | flush_cache_all(); | 114 | flush_cache_all(); |
115 | 115 | ||
116 | set_bl_bit(); | ||
117 | #if defined(CONFIG_SH_STANDARD_BIOS) | 116 | #if defined(CONFIG_SH_STANDARD_BIOS) |
118 | asm volatile("ldc %0, vbr" : | 117 | asm volatile("ldc %0, vbr" : |
119 | : "r" (((unsigned long) gdb_vbr_vector) - 0x100) | 118 | : "r" (((unsigned long) gdb_vbr_vector) - 0x100) |
120 | : "memory"); | 119 | : "memory"); |
121 | #endif | 120 | #endif |
121 | |||
122 | /* now call it */ | 122 | /* now call it */ |
123 | rnk = (relocate_new_kernel_t) reboot_code_buffer; | 123 | rnk = (relocate_new_kernel_t) reboot_code_buffer; |
124 | (*rnk)(page_list, reboot_code_buffer, image->start); | 124 | (*rnk)(page_list, reboot_code_buffer, image->start); |
125 | 125 | ||
126 | #ifdef CONFIG_KEXEC_JUMP | 126 | #ifdef CONFIG_KEXEC_JUMP |
127 | asm volatile("ldc %0, vbr" : : "r" (&vbr_base) : "memory"); | 127 | asm volatile("ldc %0, vbr" : : "r" (&vbr_base) : "memory"); |
128 | local_irq_disable(); | 128 | |
129 | clear_bl_bit(); | ||
130 | if (image->preserve_context) | 129 | if (image->preserve_context) |
131 | restore_processor_state(); | 130 | restore_processor_state(); |
132 | 131 | ||