diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-11 15:53:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-11 15:53:21 -0400 |
commit | 2a383c63ff933a496f19d6559ab54ac14871b7f3 (patch) | |
tree | b0f4a4fbc4d882c7fea7c6b8f69924284abff76d /arch/ia64/kernel | |
parent | 8bd994815987dda0947bd9afd887b1410713d4f7 (diff) | |
parent | 2bd62a40f63bd628c43a2f3637b252d0967659b0 (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.S | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/err_inject.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/irq.c | 11 | ||||
-rw-r--r-- | arch/ia64/kernel/kprobes.c | 12 | ||||
-rw-r--r-- | arch/ia64/kernel/machvec.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/mca.c | 2 |
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); | |||
291 | module_exit(err_inject_exit); | 291 | module_exit(err_inject_exit); |
292 | 292 | ||
293 | MODULE_AUTHOR("Fenghua Yu <fenghua.yu@intel.com>"); | 293 | MODULE_AUTHOR("Fenghua Yu <fenghua.yu@intel.com>"); |
294 | MODULE_DESCRIPTION("MC error injection kenrel sysfs interface"); | 294 | MODULE_DESCRIPTION("MC error injection kernel sysfs interface"); |
295 | MODULE_LICENSE("GPL"); | 295 | MODULE_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 | |||
108 | bool 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 | ||
371 | static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) | 371 | static 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 | ||
377 | static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb) | 379 | static 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 | ||
383 | static void __kprobes set_current_kprobe(struct kprobe *p, | 387 | static 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 | ||
38 | void | 38 | void __init |
39 | machvec_init (const char *name) | 39 | machvec_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 | ||
121 | static struct timer_list cpe_poll_timer; | 122 | static struct timer_list cpe_poll_timer; |
123 | #endif | ||
122 | static struct timer_list cmc_poll_timer; | 124 | static 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. |