aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-11 15:53:21 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-11 15:53:21 -0400
commit2a383c63ff933a496f19d6559ab54ac14871b7f3 (patch)
treeb0f4a4fbc4d882c7fea7c6b8f69924284abff76d /arch/ia64/kernel
parent8bd994815987dda0947bd9afd887b1410713d4f7 (diff)
parent2bd62a40f63bd628c43a2f3637b252d0967659b0 (diff)
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] Quicklist support for IA64 [IA64] fix Kprobes reentrancy [IA64] SN: validate smp_affinity mask on intr redirect [IA64] drivers/char/snsc_event.c:206: warning: unused variable `p' [IA64] mca.c:121: warning: 'cpe_poll_timer' defined but not used [IA64] Fix - Section mismatch: reference to .init.data:mvec_name [IA64] more warning cleanups [IA64] Wire up epoll_pwait and utimensat [IA64] Fix warnings resulting from type-checking in dev_dbg() [IA64] typo s/kenrel/kernel/
Diffstat (limited to 'arch/ia64/kernel')
-rw-r--r--arch/ia64/kernel/entry.S2
-rw-r--r--arch/ia64/kernel/err_inject.c2
-rw-r--r--arch/ia64/kernel/irq.c11
-rw-r--r--arch/ia64/kernel/kprobes.c12
-rw-r--r--arch/ia64/kernel/machvec.c2
-rw-r--r--arch/ia64/kernel/mca.c2
6 files changed, 25 insertions, 6 deletions
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
index b50bf208678e..144b056282af 100644
--- a/arch/ia64/kernel/entry.S
+++ b/arch/ia64/kernel/entry.S
@@ -1583,5 +1583,7 @@ sys_call_table:
1583 data8 sys_vmsplice 1583 data8 sys_vmsplice
1584 data8 sys_ni_syscall // reserved for move_pages 1584 data8 sys_ni_syscall // reserved for move_pages
1585 data8 sys_getcpu 1585 data8 sys_getcpu
1586 data8 sys_epoll_pwait // 1305
1587 data8 sys_utimensat
1586 1588
1587 .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls 1589 .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls
diff --git a/arch/ia64/kernel/err_inject.c b/arch/ia64/kernel/err_inject.c
index 6a49600cf337..b642648cc2ac 100644
--- a/arch/ia64/kernel/err_inject.c
+++ b/arch/ia64/kernel/err_inject.c
@@ -291,5 +291,5 @@ module_init(err_inject_init);
291module_exit(err_inject_exit); 291module_exit(err_inject_exit);
292 292
293MODULE_AUTHOR("Fenghua Yu <fenghua.yu@intel.com>"); 293MODULE_AUTHOR("Fenghua Yu <fenghua.yu@intel.com>");
294MODULE_DESCRIPTION("MC error injection kenrel sysfs interface"); 294MODULE_DESCRIPTION("MC error injection kernel sysfs interface");
295MODULE_LICENSE("GPL"); 295MODULE_LICENSE("GPL");
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c
index ce49c85c928f..b4c239685d2e 100644
--- a/arch/ia64/kernel/irq.c
+++ b/arch/ia64/kernel/irq.c
@@ -104,6 +104,17 @@ void set_irq_affinity_info (unsigned int irq, int hwid, int redir)
104 irq_redir[irq] = (char) (redir & 0xff); 104 irq_redir[irq] = (char) (redir & 0xff);
105 } 105 }
106} 106}
107
108bool is_affinity_mask_valid(cpumask_t cpumask)
109{
110 if (ia64_platform_is("sn2")) {
111 /* Only allow one CPU to be specified in the smp_affinity mask */
112 if (cpus_weight(cpumask) != 1)
113 return false;
114 }
115 return true;
116}
117
107#endif /* CONFIG_SMP */ 118#endif /* CONFIG_SMP */
108 119
109#ifdef CONFIG_HOTPLUG_CPU 120#ifdef CONFIG_HOTPLUG_CPU
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c
index 4f5fd0960ba7..72e593e94053 100644
--- a/arch/ia64/kernel/kprobes.c
+++ b/arch/ia64/kernel/kprobes.c
@@ -370,14 +370,18 @@ static int __kprobes valid_kprobe_addr(int template, int slot,
370 370
371static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) 371static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb)
372{ 372{
373 kcb->prev_kprobe.kp = kprobe_running(); 373 unsigned int i;
374 kcb->prev_kprobe.status = kcb->kprobe_status; 374 i = atomic_add_return(1, &kcb->prev_kprobe_index);
375 kcb->prev_kprobe[i-1].kp = kprobe_running();
376 kcb->prev_kprobe[i-1].status = kcb->kprobe_status;
375} 377}
376 378
377static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb) 379static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb)
378{ 380{
379 __get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp; 381 unsigned int i;
380 kcb->kprobe_status = kcb->prev_kprobe.status; 382 i = atomic_sub_return(1, &kcb->prev_kprobe_index);
383 __get_cpu_var(current_kprobe) = kcb->prev_kprobe[i].kp;
384 kcb->kprobe_status = kcb->prev_kprobe[i].status;
381} 385}
382 386
383static void __kprobes set_current_kprobe(struct kprobe *p, 387static void __kprobes set_current_kprobe(struct kprobe *p,
diff --git a/arch/ia64/kernel/machvec.c b/arch/ia64/kernel/machvec.c
index 9620822270a6..13df337508e7 100644
--- a/arch/ia64/kernel/machvec.c
+++ b/arch/ia64/kernel/machvec.c
@@ -35,7 +35,7 @@ lookup_machvec (const char *name)
35 return 0; 35 return 0;
36} 36}
37 37
38void 38void __init
39machvec_init (const char *name) 39machvec_init (const char *name)
40{ 40{
41 struct ia64_machine_vector *mv; 41 struct ia64_machine_vector *mv;
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index f8ae709de0b5..26814de6c29a 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -118,7 +118,9 @@ static ia64_mc_info_t ia64_mc_info;
118#define CPE_HISTORY_LENGTH 5 118#define CPE_HISTORY_LENGTH 5
119#define CMC_HISTORY_LENGTH 5 119#define CMC_HISTORY_LENGTH 5
120 120
121#ifdef CONFIG_ACPI
121static struct timer_list cpe_poll_timer; 122static struct timer_list cpe_poll_timer;
123#endif
122static struct timer_list cmc_poll_timer; 124static struct timer_list cmc_poll_timer;
123/* 125/*
124 * This variable tells whether we are currently in polling mode. 126 * This variable tells whether we are currently in polling mode.