diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 16:56:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 16:56:35 -0400 |
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 070e8effa175..5151a649c96b 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) | |||
85 | struct kimage *image = arg; | 85 | struct kimage *image = arg; |
86 | relocate_new_kernel_t rnk; | 86 | relocate_new_kernel_t rnk; |
87 | void *pal_addr = efi_get_pal_addr(); | 87 | void *pal_addr = efi_get_pal_addr(); |
88 | unsigned long code_addr = (unsigned long)page_address(image->control_code_page); | 88 | unsigned long code_addr; |
89 | int ii; | 89 | int ii; |
90 | u64 fp, gp; | 90 | u64 fp, gp; |
91 | ia64_fptr_t *init_handler = (ia64_fptr_t *)ia64_os_init_on_kdump; | 91 | ia64_fptr_t *init_handler = (ia64_fptr_t *)ia64_os_init_on_kdump; |
92 | 92 | ||
93 | BUG_ON(!image); | 93 | BUG_ON(!image); |
94 | code_addr = (unsigned long)page_address(image->control_code_page); | ||
94 | if (image->type == KEXEC_TYPE_CRASH) { | 95 | if (image->type == KEXEC_TYPE_CRASH) { |
95 | crash_save_this_cpu(); | 96 | crash_save_this_cpu(); |
96 | current->thread.ksp = (__u64)info->sw - 16; | 97 | current->thread.ksp = (__u64)info->sw - 16; |
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index 3e316ec0b835..ee31fe9b310e 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) | |||
197 | ia64_do_signal(scr, in_syscall); | 197 | ia64_do_signal(scr, in_syscall); |
198 | } | 198 | } |
199 | 199 | ||
200 | if (test_thread_flag(TIF_NOTIFY_RESUME)) { | 200 | if (test_and_clear_thread_flag(TIF_NOTIFY_RESUME)) { |
201 | clear_thread_flag(TIF_NOTIFY_RESUME); | 201 | local_irq_enable(); /* force interrupt enable */ |
202 | tracehook_notify_resume(&scr->pt); | 202 | tracehook_notify_resume(&scr->pt); |
203 | } | 203 | } |
204 | 204 | ||