aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-10-01 16:56:35 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-10-01 16:56:35 -0400
commita57d985e378ca69f430b85852e4187db3698a89e (patch)
tree01fbc23313959d20fcd4e7385ef5a056b47c1828 /arch/ia64
parentcdeb9b014331af4282be522824e36f3aa33f0671 (diff)
parent39c9a4ab2b91bff26801c86e423ef07fb705b3c0 (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')
-rw-r--r--arch/ia64/include/asm/numa.h2
-rw-r--r--arch/ia64/kernel/machine_kexec.c3
-rw-r--r--arch/ia64/kernel/process.c4
-rw-r--r--arch/ia64/xen/xencomm.c3
4 files changed, 7 insertions, 5 deletions
diff --git a/arch/ia64/include/asm/numa.h b/arch/ia64/include/asm/numa.h
index 6a8a27cfae3e..2e27ef175652 100644
--- a/arch/ia64/include/asm/numa.h
+++ b/arch/ia64/include/asm/numa.h
@@ -59,7 +59,7 @@ extern struct node_cpuid_s node_cpuid[NR_CPUS];
59 */ 59 */
60 60
61extern u8 numa_slit[MAX_NUMNODES * MAX_NUMNODES]; 61extern u8 numa_slit[MAX_NUMNODES * MAX_NUMNODES];
62#define node_distance(from,to) (numa_slit[(from) * num_online_nodes() + (to)]) 62#define node_distance(from,to) (numa_slit[(from) * MAX_NUMNODES + (to)])
63 63
64extern int paddr_to_nid(unsigned long paddr); 64extern int paddr_to_nid(unsigned long paddr);
65 65
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
diff --git a/arch/ia64/xen/xencomm.c b/arch/ia64/xen/xencomm.c
index 1f5d7ac82e97..73d903ca2d64 100644
--- a/arch/ia64/xen/xencomm.c
+++ b/arch/ia64/xen/xencomm.c
@@ -17,6 +17,7 @@
17 */ 17 */
18 18
19#include <linux/mm.h> 19#include <linux/mm.h>
20#include <linux/err.h>
20 21
21static unsigned long kernel_virtual_offset; 22static unsigned long kernel_virtual_offset;
22static int is_xencomm_initialized; 23static int is_xencomm_initialized;
@@ -98,7 +99,7 @@ xencomm_vtop(unsigned long vaddr)
98 99
99 /* We assume the page is modified. */ 100 /* We assume the page is modified. */
100 page = follow_page(vma, vaddr, FOLL_WRITE | FOLL_TOUCH); 101 page = follow_page(vma, vaddr, FOLL_WRITE | FOLL_TOUCH);
101 if (!page) 102 if (IS_ERR_OR_NULL(page))
102 return ~0UL; 103 return ~0UL;
103 104
104 return (page_to_pfn(page) << PAGE_SHIFT) | (vaddr & ~PAGE_MASK); 105 return (page_to_pfn(page) << PAGE_SHIFT) | (vaddr & ~PAGE_MASK);