diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/include/asm/kdump.h | 6 | ||||
-rw-r--r-- | arch/powerpc/kernel/machine_kexec_64.c | 9 | ||||
-rw-r--r-- | arch/powerpc/kernel/misc_64.S | 9 |
3 files changed, 5 insertions, 19 deletions
diff --git a/arch/powerpc/include/asm/kdump.h b/arch/powerpc/include/asm/kdump.h index a503da9d56f3..821ed48c10ed 100644 --- a/arch/powerpc/include/asm/kdump.h +++ b/arch/powerpc/include/asm/kdump.h | |||
@@ -9,12 +9,6 @@ | |||
9 | * Reserve to the end of the FWNMI area, see head_64.S */ | 9 | * Reserve to the end of the FWNMI area, see head_64.S */ |
10 | #define KDUMP_RESERVE_LIMIT 0x10000 /* 64K */ | 10 | #define KDUMP_RESERVE_LIMIT 0x10000 /* 64K */ |
11 | 11 | ||
12 | /* | ||
13 | * Used to differentiate between relocatable kdump kernel and other | ||
14 | * kernels | ||
15 | */ | ||
16 | #define KDUMP_SIGNATURE 0xfeed1234 | ||
17 | |||
18 | #ifdef CONFIG_CRASH_DUMP | 12 | #ifdef CONFIG_CRASH_DUMP |
19 | 13 | ||
20 | #define KDUMP_TRAMPOLINE_START 0x0100 | 14 | #define KDUMP_TRAMPOLINE_START 0x0100 |
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index e6efec788c4d..3c4ca046e854 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c | |||
@@ -255,14 +255,11 @@ static union thread_union kexec_stack | |||
255 | /* Our assembly helper, in kexec_stub.S */ | 255 | /* Our assembly helper, in kexec_stub.S */ |
256 | extern NORET_TYPE void kexec_sequence(void *newstack, unsigned long start, | 256 | extern NORET_TYPE void kexec_sequence(void *newstack, unsigned long start, |
257 | void *image, void *control, | 257 | void *image, void *control, |
258 | void (*clear_all)(void), | 258 | void (*clear_all)(void)) ATTRIB_NORET; |
259 | unsigned long kdump_flag) ATTRIB_NORET; | ||
260 | 259 | ||
261 | /* too late to fail here */ | 260 | /* too late to fail here */ |
262 | void default_machine_kexec(struct kimage *image) | 261 | void default_machine_kexec(struct kimage *image) |
263 | { | 262 | { |
264 | unsigned long kdump_flag = 0; | ||
265 | |||
266 | /* prepare control code if any */ | 263 | /* prepare control code if any */ |
267 | 264 | ||
268 | /* | 265 | /* |
@@ -275,8 +272,6 @@ void default_machine_kexec(struct kimage *image) | |||
275 | 272 | ||
276 | if (crashing_cpu == -1) | 273 | if (crashing_cpu == -1) |
277 | kexec_prepare_cpus(); | 274 | kexec_prepare_cpus(); |
278 | else | ||
279 | kdump_flag = KDUMP_SIGNATURE; | ||
280 | 275 | ||
281 | /* switch to a staticly allocated stack. Based on irq stack code. | 276 | /* switch to a staticly allocated stack. Based on irq stack code. |
282 | * XXX: the task struct will likely be invalid once we do the copy! | 277 | * XXX: the task struct will likely be invalid once we do the copy! |
@@ -289,7 +284,7 @@ void default_machine_kexec(struct kimage *image) | |||
289 | */ | 284 | */ |
290 | kexec_sequence(&kexec_stack, image->start, image, | 285 | kexec_sequence(&kexec_stack, image->start, image, |
291 | page_address(image->control_code_page), | 286 | page_address(image->control_code_page), |
292 | ppc_md.hpte_clear_all, kdump_flag); | 287 | ppc_md.hpte_clear_all); |
293 | /* NOTREACHED */ | 288 | /* NOTREACHED */ |
294 | } | 289 | } |
295 | 290 | ||
diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S index a243fd072a77..3053fe5c62f2 100644 --- a/arch/powerpc/kernel/misc_64.S +++ b/arch/powerpc/kernel/misc_64.S | |||
@@ -611,12 +611,10 @@ real_mode: /* assume normal blr return */ | |||
611 | 611 | ||
612 | 612 | ||
613 | /* | 613 | /* |
614 | * kexec_sequence(newstack, start, image, control, clear_all(), kdump_flag) | 614 | * kexec_sequence(newstack, start, image, control, clear_all()) |
615 | * | 615 | * |
616 | * does the grungy work with stack switching and real mode switches | 616 | * does the grungy work with stack switching and real mode switches |
617 | * also does simple calls to other code | 617 | * also does simple calls to other code |
618 | * | ||
619 | * kdump_flag says whether the next kernel should be a kdump kernel. | ||
620 | */ | 618 | */ |
621 | 619 | ||
622 | _GLOBAL(kexec_sequence) | 620 | _GLOBAL(kexec_sequence) |
@@ -649,7 +647,7 @@ _GLOBAL(kexec_sequence) | |||
649 | mr r29,r5 /* image (virt) */ | 647 | mr r29,r5 /* image (virt) */ |
650 | mr r28,r6 /* control, unused */ | 648 | mr r28,r6 /* control, unused */ |
651 | mr r27,r7 /* clear_all() fn desc */ | 649 | mr r27,r7 /* clear_all() fn desc */ |
652 | mr r26,r8 /* kdump flag */ | 650 | mr r26,r8 /* spare */ |
653 | lhz r25,PACAHWCPUID(r13) /* get our phys cpu from paca */ | 651 | lhz r25,PACAHWCPUID(r13) /* get our phys cpu from paca */ |
654 | 652 | ||
655 | /* disable interrupts, we are overwriting kernel data next */ | 653 | /* disable interrupts, we are overwriting kernel data next */ |
@@ -711,6 +709,5 @@ _GLOBAL(kexec_sequence) | |||
711 | mr r4,r30 # start, aka phys mem offset | 709 | mr r4,r30 # start, aka phys mem offset |
712 | mtlr 4 | 710 | mtlr 4 |
713 | li r5,0 | 711 | li r5,0 |
714 | mr r6,r26 /* kdump_flag */ | 712 | blr /* image->start(physid, image->start, 0); */ |
715 | blr /* image->start(physid, image->start, 0, kdump_flag); */ | ||
716 | #endif /* CONFIG_KEXEC */ | 713 | #endif /* CONFIG_KEXEC */ |