diff options
author | Stephen Boyd <sboyd@codeaurora.org> | 2013-06-24 17:45:02 -0700 |
---|---|---|
committer | Stephen Boyd <sboyd@codeaurora.org> | 2013-06-24 17:45:02 -0700 |
commit | 42cba6e27c4cddc4df701c597dbfa666e1c013c8 (patch) | |
tree | 6fe38f37a79391bce3db56f311d0f3b83711fad0 /arch/powerpc/kernel/machine_kexec_64.c | |
parent | f722406faae2d073cc1d01063d1123c35425939e (diff) | |
parent | 2699339361a9bacb3fa663e6b8981a040cfca4ee (diff) | |
download | blackbird-op-linux-42cba6e27c4cddc4df701c597dbfa666e1c013c8.tar.gz blackbird-op-linux-42cba6e27c4cddc4df701c597dbfa666e1c013c8.zip |
Merge branch 'timers/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into remove-local-timers
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 466a2908bb63..611acdf30096 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 |