diff options
author | Yang Wei <[email protected]> | 2014-07-31 19:42:29 +0800 |
---|---|---|
committer | Ralf Baechle <[email protected]> | 2014-08-25 16:33:44 +0200 |
commit | 91ffaa27834b69dc23dfe14a0358f1c70d2938e2 (patch) | |
tree | 7785fa535deb4b2541e30b7012ac97617e015b78 | |
parent | 7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9 (diff) |
MIPS: kdump: Set correct value to kexec_indirection_page variable
Since there is not indirection page in crash type, so the vaule of the head
field of kimage structure is not equal to the address of indirection page but
IND_DONE. so we have to set kexec_indirection_page variable to the address of
the head field of image structure.
[[email protected]: Don't add pointless empty line, fix trailing
whitespace damage.]
Signed-off-by: Yang Wei <[email protected]>
Cc: [email protected]
Cc: [email protected]
Patchwork: https://patchwork.linux-mips.org/patch/7499/
Signed-off-by: Ralf Baechle <[email protected]>
-rw-r--r-- | arch/mips/kernel/machine_kexec.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/mips/kernel/machine_kexec.c b/arch/mips/kernel/machine_kexec.c index 992e18474da5..50980bf3983e 100644 --- a/arch/mips/kernel/machine_kexec.c +++ b/arch/mips/kernel/machine_kexec.c @@ -71,8 +71,12 @@ machine_kexec(struct kimage *image) kexec_start_address = (unsigned long) phys_to_virt(image->start); - kexec_indirection_page = - (unsigned long) phys_to_virt(image->head & PAGE_MASK); + if (image->type == KEXEC_TYPE_DEFAULT) { + kexec_indirection_page = + (unsigned long) phys_to_virt(image->head & PAGE_MASK); + } else { + kexec_indirection_page = (unsigned long)&image->head; + } memcpy((void*)reboot_code_buffer, relocate_new_kernel, relocate_new_kernel_size); |