aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/machine_kexec.c
diff options
context:
space:
mode:
authorYang Wei <Wei.Yang@windriver.com>2014-07-31 19:42:29 +0800
committerRalf Baechle <ralf@linux-mips.org>2014-08-25 16:33:44 +0200
commit91ffaa27834b69dc23dfe14a0358f1c70d2938e2 (patch)
tree7785fa535deb4b2541e30b7012ac97617e015b78 /arch/mips/kernel/machine_kexec.c
parentLinux 3.17-rc1 (diff)
downloadlinux-dev-91ffaa27834b69dc23dfe14a0358f1c70d2938e2.tar.xz
linux-dev-91ffaa27834b69dc23dfe14a0358f1c70d2938e2.zip
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. [ralf@linux-mips.org: Don't add pointless empty line, fix trailing whitespace damage.] Signed-off-by: Yang Wei <Wei.Yang@windriver.com> Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/7499/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/machine_kexec.c')
-rw-r--r--arch/mips/kernel/machine_kexec.c8
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);