diff options
author | Chris Zankel <chris@zankel.net> | 2013-07-08 01:10:26 -0700 |
---|---|---|
committer | Chris Zankel <chris@zankel.net> | 2013-07-08 01:10:26 -0700 |
commit | 033d777f548645c3a906b73eef5d665aeee55092 (patch) | |
tree | 707dd7757ed59882fb1ecaf73313c325fa20dec8 /arch/powerpc/kernel/machine_kexec_64.c | |
parent | fd95ee7380ae973c6f11b897af6ef9d253a1df9e (diff) | |
parent | 73b0cd674ccc64c921e25bd7154f26d342116539 (diff) | |
download | op-kernel-dev-033d777f548645c3a906b73eef5d665aeee55092.zip op-kernel-dev-033d777f548645c3a906b73eef5d665aeee55092.tar.gz |
Merge branch 'timers-core-for-linus' of https://git.kernel.org/cgit/linux/kernel/git/tip/tip into tst5
Diffstat (limited to 'arch/powerpc/kernel/machine_kexec_64.c')
-rw-r--r-- | arch/powerpc/kernel/machine_kexec_64.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index 466a290..611acdf 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c @@ -17,6 +17,7 @@ #include <linux/errno.h> #include <linux/kernel.h> #include <linux/cpu.h> +#include <linux/hardirq.h> #include <asm/page.h> #include <asm/current.h> @@ -335,10 +336,13 @@ void default_machine_kexec(struct kimage *image) pr_debug("kexec: Starting switchover sequence.\n"); /* switch to a staticly allocated stack. Based on irq stack code. + * We setup preempt_count to avoid using VMX in memcpy. * XXX: the task struct will likely be invalid once we do the copy! */ kexec_stack.thread_info.task = current_thread_info()->task; kexec_stack.thread_info.flags = 0; + kexec_stack.thread_info.preempt_count = HARDIRQ_OFFSET; + kexec_stack.thread_info.cpu = current_thread_info()->cpu; /* We need a static PACA, too; copy this CPU's PACA over and switch to * it. Also poison per_cpu_offset to catch anyone using non-static |