diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 13:56:35 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 13:56:35 -0700 |
commit | a57d985e378ca69f430b85852e4187db3698a89e (patch) | |
tree | 01fbc23313959d20fcd4e7385ef5a056b47c1828 /arch/ia64/kernel | |
parent | cdeb9b014331af4282be522824e36f3aa33f0671 (diff) | |
parent | 39c9a4ab2b91bff26801c86e423ef07fb705b3c0 (diff) |
Merge tag 'please-pull-ia64-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux
Pull ia64 update from Tony Luck:
"Usual mish-mash of ia64 fixes for next merge window"
* tag 'please-pull-ia64-for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
[IA64] xen: Fix return value check in xencomm_vtop()
[IA64] Must enable interrupts in do_notify_resume_user before calling tracehook_notify_resume()
[IA64] kexec: Move the dereference below the NULL test
[IA64] Fix a node distance bug
Diffstat (limited to 'arch/ia64/kernel')
-rw-r--r-- | arch/ia64/kernel/machine_kexec.c | 3 | ||||
-rw-r--r-- | arch/ia64/kernel/process.c | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c index 070e8effa17..5151a649c96 100644 --- a/arch/ia64/kernel/machine_kexec.c +++ b/arch/ia64/kernel/machine_kexec.c @@ -85,12 +85,13 @@ static void ia64_machine_kexec(struct unw_frame_info *info, void *arg) struct kimage *image = arg; relocate_new_kernel_t rnk; void *pal_addr = efi_get_pal_addr(); - unsigned long code_addr = (unsigned long)page_address(image->control_code_page); + unsigned long code_addr; int ii; u64 fp, gp; ia64_fptr_t *init_handler = (ia64_fptr_t *)ia64_os_init_on_kdump; BUG_ON(!image); + code_addr = (unsigned long)page_address(image->control_code_page); if (image->type == KEXEC_TYPE_CRASH) { crash_save_this_cpu(); current->thread.ksp = (__u64)info->sw - 16; diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index 3e316ec0b83..ee31fe9b310 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c @@ -197,8 +197,8 @@ do_notify_resume_user(sigset_t *unused, struct sigscratch *scr, long in_syscall) ia64_do_signal(scr, in_syscall); } - if (test_thread_flag(TIF_NOTIFY_RESUME)) { - clear_thread_flag(TIF_NOTIFY_RESUME); + if (test_and_clear_thread_flag(TIF_NOTIFY_RESUME)) { + local_irq_enable(); /* force interrupt enable */ tracehook_notify_resume(&scr->pt); } |