aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/Kconfig2
-rw-r--r--arch/ia64/hp/sim/boot/fw-emu.c2
-rw-r--r--arch/ia64/ia32/ia32_ldt.c1
-rw-r--r--arch/ia64/ia32/ia32_signal.c1
-rw-r--r--arch/ia64/ia32/ia32_support.c6
-rw-r--r--arch/ia64/kernel/crash.c4
-rw-r--r--arch/ia64/kernel/efi.c10
-rw-r--r--arch/ia64/kernel/err_inject.c2
-rw-r--r--arch/ia64/kernel/iosapic.c1
-rw-r--r--arch/ia64/kernel/irq_ia64.c1
-rw-r--r--arch/ia64/kernel/kprobes.c32
-rw-r--r--arch/ia64/kernel/mca.c5
-rw-r--r--arch/ia64/kernel/mca_drv.c1
-rw-r--r--arch/ia64/kernel/palinfo.c2
-rw-r--r--arch/ia64/kernel/perfmon.c1
-rw-r--r--arch/ia64/kernel/process.c3
-rw-r--r--arch/ia64/kernel/salinfo.c3
-rw-r--r--arch/ia64/kernel/signal.c1
-rw-r--r--arch/ia64/kernel/smpboot.c1
-rw-r--r--arch/ia64/kernel/sys_ia64.c1
-rw-r--r--arch/ia64/kernel/time.c2
-rw-r--r--arch/ia64/kernel/topology.c2
-rw-r--r--arch/ia64/kernel/traps.c18
-rw-r--r--arch/ia64/kernel/unaligned.c1
-rw-r--r--arch/ia64/mm/discontig.c2
-rw-r--r--arch/ia64/mm/fault.c3
-rw-r--r--arch/ia64/mm/hugetlbpage.c1
-rw-r--r--arch/ia64/pci/pci.c1
-rw-r--r--arch/ia64/sn/kernel/xpc_main.c4
29 files changed, 45 insertions, 69 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index e23af4b6ae8c..6e41471449c0 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -468,7 +468,7 @@ config KEXEC
468 help 468 help
469 kexec is a system call that implements the ability to shutdown your 469 kexec is a system call that implements the ability to shutdown your
470 current kernel, and to start another kernel. It is like a reboot 470 current kernel, and to start another kernel. It is like a reboot
471 but it is indepedent of the system firmware. And like a reboot 471 but it is independent of the system firmware. And like a reboot
472 you can start any kernel with it, not just Linux. 472 you can start any kernel with it, not just Linux.
473 473
474 The name comes from the similiarity to the exec system call. 474 The name comes from the similiarity to the exec system call.
diff --git a/arch/ia64/hp/sim/boot/fw-emu.c b/arch/ia64/hp/sim/boot/fw-emu.c
index 5a0a7afcfc3a..300acd913d9c 100644
--- a/arch/ia64/hp/sim/boot/fw-emu.c
+++ b/arch/ia64/hp/sim/boot/fw-emu.c
@@ -287,7 +287,7 @@ sys_fw_init (const char *args, int arglen)
287 287
288 memset(efi_systab, 0, sizeof(efi_systab)); 288 memset(efi_systab, 0, sizeof(efi_systab));
289 efi_systab->hdr.signature = EFI_SYSTEM_TABLE_SIGNATURE; 289 efi_systab->hdr.signature = EFI_SYSTEM_TABLE_SIGNATURE;
290 efi_systab->hdr.revision = EFI_SYSTEM_TABLE_REVISION; 290 efi_systab->hdr.revision = ((1 << 16) | 00);
291 efi_systab->hdr.headersize = sizeof(efi_systab->hdr); 291 efi_systab->hdr.headersize = sizeof(efi_systab->hdr);
292 efi_systab->fw_vendor = __pa("H\0e\0w\0l\0e\0t\0t\0-\0P\0a\0c\0k\0a\0r\0d\0\0"); 292 efi_systab->fw_vendor = __pa("H\0e\0w\0l\0e\0t\0t\0-\0P\0a\0c\0k\0a\0r\0d\0\0");
293 efi_systab->fw_revision = 1; 293 efi_systab->fw_revision = 1;
diff --git a/arch/ia64/ia32/ia32_ldt.c b/arch/ia64/ia32/ia32_ldt.c
index a152738c7d0d..16d51c146849 100644
--- a/arch/ia64/ia32/ia32_ldt.c
+++ b/arch/ia64/ia32/ia32_ldt.c
@@ -10,7 +10,6 @@
10#include <linux/string.h> 10#include <linux/string.h>
11#include <linux/mm.h> 11#include <linux/mm.h>
12#include <linux/smp.h> 12#include <linux/smp.h>
13#include <linux/smp_lock.h>
14#include <linux/vmalloc.h> 13#include <linux/vmalloc.h>
15 14
16#include <asm/uaccess.h> 15#include <asm/uaccess.h>
diff --git a/arch/ia64/ia32/ia32_signal.c b/arch/ia64/ia32/ia32_signal.c
index b2bb7f227920..85e82f32e480 100644
--- a/arch/ia64/ia32/ia32_signal.c
+++ b/arch/ia64/ia32/ia32_signal.c
@@ -18,7 +18,6 @@
18#include <linux/sched.h> 18#include <linux/sched.h>
19#include <linux/signal.h> 19#include <linux/signal.h>
20#include <linux/smp.h> 20#include <linux/smp.h>
21#include <linux/smp_lock.h>
22#include <linux/stddef.h> 21#include <linux/stddef.h>
23#include <linux/syscalls.h> 22#include <linux/syscalls.h>
24#include <linux/unistd.h> 23#include <linux/unistd.h>
diff --git a/arch/ia64/ia32/ia32_support.c b/arch/ia64/ia32/ia32_support.c
index 6af400a12ca1..beea7a0b9dc6 100644
--- a/arch/ia64/ia32/ia32_support.c
+++ b/arch/ia64/ia32/ia32_support.c
@@ -252,10 +252,8 @@ ia32_init (void)
252 extern struct kmem_cache *partial_page_cachep; 252 extern struct kmem_cache *partial_page_cachep;
253 253
254 partial_page_cachep = kmem_cache_create("partial_page_cache", 254 partial_page_cachep = kmem_cache_create("partial_page_cache",
255 sizeof(struct partial_page), 0, 0, 255 sizeof(struct partial_page),
256 NULL, NULL); 256 0, SLAB_PANIC, NULL, NULL);
257 if (!partial_page_cachep)
258 panic("Cannot create partial page SLAB cache");
259 } 257 }
260#endif 258#endif
261 return 0; 259 return 0;
diff --git a/arch/ia64/kernel/crash.c b/arch/ia64/kernel/crash.c
index 80a94e707827..aeb79fb28f0b 100644
--- a/arch/ia64/kernel/crash.c
+++ b/arch/ia64/kernel/crash.c
@@ -16,8 +16,8 @@
16#include <linux/elfcore.h> 16#include <linux/elfcore.h>
17#include <linux/sysctl.h> 17#include <linux/sysctl.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/kdebug.h>
19 20
20#include <asm/kdebug.h>
21#include <asm/mca.h> 21#include <asm/mca.h>
22 22
23int kdump_status[NR_CPUS]; 23int kdump_status[NR_CPUS];
@@ -74,7 +74,7 @@ crash_save_this_cpu(void)
74 buf = (u64 *) per_cpu_ptr(crash_notes, cpu); 74 buf = (u64 *) per_cpu_ptr(crash_notes, cpu);
75 if (!buf) 75 if (!buf)
76 return; 76 return;
77 buf = append_elf_note(buf, "CORE", NT_PRSTATUS, prstatus, 77 buf = append_elf_note(buf, KEXEC_CORE_NOTE_NAME, NT_PRSTATUS, prstatus,
78 sizeof(*prstatus)); 78 sizeof(*prstatus));
79 final_note(buf); 79 final_note(buf);
80} 80}
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c
index 78d29b79947d..75ec3478d8a2 100644
--- a/arch/ia64/kernel/efi.c
+++ b/arch/ia64/kernel/efi.c
@@ -445,11 +445,11 @@ efi_init (void)
445 panic("Woah! Can't find EFI system table.\n"); 445 panic("Woah! Can't find EFI system table.\n");
446 if (efi.systab->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE) 446 if (efi.systab->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE)
447 panic("Woah! EFI system table signature incorrect\n"); 447 panic("Woah! EFI system table signature incorrect\n");
448 if ((efi.systab->hdr.revision ^ EFI_SYSTEM_TABLE_REVISION) >> 16 != 0) 448 if ((efi.systab->hdr.revision >> 16) == 0)
449 printk(KERN_WARNING "Warning: EFI system table major version mismatch: " 449 printk(KERN_WARNING "Warning: EFI system table version "
450 "got %d.%02d, expected %d.%02d\n", 450 "%d.%02d, expected 1.00 or greater\n",
451 efi.systab->hdr.revision >> 16, efi.systab->hdr.revision & 0xffff, 451 efi.systab->hdr.revision >> 16,
452 EFI_SYSTEM_TABLE_REVISION >> 16, EFI_SYSTEM_TABLE_REVISION & 0xffff); 452 efi.systab->hdr.revision & 0xffff);
453 453
454 config_tables = __va(efi.systab->tables); 454 config_tables = __va(efi.systab->tables);
455 455
diff --git a/arch/ia64/kernel/err_inject.c b/arch/ia64/kernel/err_inject.c
index d3e9f33e8bdd..6a49600cf337 100644
--- a/arch/ia64/kernel/err_inject.c
+++ b/arch/ia64/kernel/err_inject.c
@@ -236,9 +236,11 @@ static int __cpuinit err_inject_cpu_callback(struct notifier_block *nfb,
236 sys_dev = get_cpu_sysdev(cpu); 236 sys_dev = get_cpu_sysdev(cpu);
237 switch (action) { 237 switch (action) {
238 case CPU_ONLINE: 238 case CPU_ONLINE:
239 case CPU_ONLINE_FROZEN:
239 err_inject_add_dev(sys_dev); 240 err_inject_add_dev(sys_dev);
240 break; 241 break;
241 case CPU_DEAD: 242 case CPU_DEAD:
243 case CPU_DEAD_FROZEN:
242 err_inject_remove_dev(sys_dev); 244 err_inject_remove_dev(sys_dev);
243 break; 245 break;
244 } 246 }
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c
index e87dd93d4db7..37f46527d233 100644
--- a/arch/ia64/kernel/iosapic.c
+++ b/arch/ia64/kernel/iosapic.c
@@ -87,7 +87,6 @@
87#include <linux/list.h> 87#include <linux/list.h>
88#include <linux/pci.h> 88#include <linux/pci.h>
89#include <linux/smp.h> 89#include <linux/smp.h>
90#include <linux/smp_lock.h>
91#include <linux/string.h> 90#include <linux/string.h>
92#include <linux/bootmem.h> 91#include <linux/bootmem.h>
93 92
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c
index 9a5f41be760b..dce5341303de 100644
--- a/arch/ia64/kernel/irq_ia64.c
+++ b/arch/ia64/kernel/irq_ia64.c
@@ -27,7 +27,6 @@
27#include <linux/random.h> /* for rand_initialize_irq() */ 27#include <linux/random.h> /* for rand_initialize_irq() */
28#include <linux/signal.h> 28#include <linux/signal.h>
29#include <linux/smp.h> 29#include <linux/smp.h>
30#include <linux/smp_lock.h>
31#include <linux/threads.h> 30#include <linux/threads.h>
32#include <linux/bitops.h> 31#include <linux/bitops.h>
33#include <linux/irq.h> 32#include <linux/irq.h>
diff --git a/arch/ia64/kernel/kprobes.c b/arch/ia64/kernel/kprobes.c
index 6cb56dd4056d..4f5fd0960ba7 100644
--- a/arch/ia64/kernel/kprobes.c
+++ b/arch/ia64/kernel/kprobes.c
@@ -29,9 +29,9 @@
29#include <linux/slab.h> 29#include <linux/slab.h>
30#include <linux/preempt.h> 30#include <linux/preempt.h>
31#include <linux/moduleloader.h> 31#include <linux/moduleloader.h>
32#include <linux/kdebug.h>
32 33
33#include <asm/pgtable.h> 34#include <asm/pgtable.h>
34#include <asm/kdebug.h>
35#include <asm/sections.h> 35#include <asm/sections.h>
36#include <asm/uaccess.h> 36#include <asm/uaccess.h>
37 37
@@ -444,7 +444,8 @@ int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs)
444 break; 444 break;
445 } 445 }
446 446
447 BUG_ON(!orig_ret_address || (orig_ret_address == trampoline_address)); 447 kretprobe_assert(ri, orig_ret_address, trampoline_address);
448
448 regs->cr_iip = orig_ret_address; 449 regs->cr_iip = orig_ret_address;
449 450
450 reset_current_kprobe(); 451 reset_current_kprobe();
@@ -464,23 +465,13 @@ int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs)
464} 465}
465 466
466/* Called with kretprobe_lock held */ 467/* Called with kretprobe_lock held */
467void __kprobes arch_prepare_kretprobe(struct kretprobe *rp, 468void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
468 struct pt_regs *regs) 469 struct pt_regs *regs)
469{ 470{
470 struct kretprobe_instance *ri; 471 ri->ret_addr = (kprobe_opcode_t *)regs->b0;
471
472 if ((ri = get_free_rp_inst(rp)) != NULL) {
473 ri->rp = rp;
474 ri->task = current;
475 ri->ret_addr = (kprobe_opcode_t *)regs->b0;
476
477 /* Replace the return addr with trampoline addr */
478 regs->b0 = ((struct fnptr *)kretprobe_trampoline)->ip;
479 472
480 add_rp_inst(ri); 473 /* Replace the return addr with trampoline addr */
481 } else { 474 regs->b0 = ((struct fnptr *)kretprobe_trampoline)->ip;
482 rp->nmissed++;
483 }
484} 475}
485 476
486int __kprobes arch_prepare_kprobe(struct kprobe *p) 477int __kprobes arch_prepare_kprobe(struct kprobe *p)
@@ -1021,3 +1012,12 @@ int __init arch_init_kprobes(void)
1021 (kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip; 1012 (kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip;
1022 return register_kprobe(&trampoline_p); 1013 return register_kprobe(&trampoline_p);
1023} 1014}
1015
1016int __kprobes arch_trampoline_kprobe(struct kprobe *p)
1017{
1018 if (p->addr ==
1019 (kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip)
1020 return 1;
1021
1022 return 0;
1023}
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c
index 491687f84fb5..f8ae709de0b5 100644
--- a/arch/ia64/kernel/mca.c
+++ b/arch/ia64/kernel/mca.c
@@ -63,7 +63,6 @@
63#include <linux/sched.h> 63#include <linux/sched.h>
64#include <linux/interrupt.h> 64#include <linux/interrupt.h>
65#include <linux/irq.h> 65#include <linux/irq.h>
66#include <linux/smp_lock.h>
67#include <linux/bootmem.h> 66#include <linux/bootmem.h>
68#include <linux/acpi.h> 67#include <linux/acpi.h>
69#include <linux/timer.h> 68#include <linux/timer.h>
@@ -72,9 +71,9 @@
72#include <linux/smp.h> 71#include <linux/smp.h>
73#include <linux/workqueue.h> 72#include <linux/workqueue.h>
74#include <linux/cpumask.h> 73#include <linux/cpumask.h>
74#include <linux/kdebug.h>
75 75
76#include <asm/delay.h> 76#include <asm/delay.h>
77#include <asm/kdebug.h>
78#include <asm/machvec.h> 77#include <asm/machvec.h>
79#include <asm/meminit.h> 78#include <asm/meminit.h>
80#include <asm/page.h> 79#include <asm/page.h>
@@ -1690,7 +1689,7 @@ format_mca_init_stack(void *mca_data, unsigned long offset,
1690 ti->preempt_count = 1; 1689 ti->preempt_count = 1;
1691 ti->task = p; 1690 ti->task = p;
1692 ti->cpu = cpu; 1691 ti->cpu = cpu;
1693 p->thread_info = ti; 1692 p->stack = ti;
1694 p->state = TASK_UNINTERRUPTIBLE; 1693 p->state = TASK_UNINTERRUPTIBLE;
1695 cpu_set(cpu, p->cpus_allowed); 1694 cpu_set(cpu, p->cpus_allowed);
1696 INIT_LIST_HEAD(&p->tasks); 1695 INIT_LIST_HEAD(&p->tasks);
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c
index 832cf1e647e8..70b8bdbb7e6f 100644
--- a/arch/ia64/kernel/mca_drv.c
+++ b/arch/ia64/kernel/mca_drv.c
@@ -14,7 +14,6 @@
14#include <linux/interrupt.h> 14#include <linux/interrupt.h>
15#include <linux/irq.h> 15#include <linux/irq.h>
16#include <linux/kallsyms.h> 16#include <linux/kallsyms.h>
17#include <linux/smp_lock.h>
18#include <linux/bootmem.h> 17#include <linux/bootmem.h>
19#include <linux/acpi.h> 18#include <linux/acpi.h>
20#include <linux/timer.h> 19#include <linux/timer.h>
diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c
index a71df9ae0397..85829e27785c 100644
--- a/arch/ia64/kernel/palinfo.c
+++ b/arch/ia64/kernel/palinfo.c
@@ -975,9 +975,11 @@ static int palinfo_cpu_callback(struct notifier_block *nfb,
975 975
976 switch (action) { 976 switch (action) {
977 case CPU_ONLINE: 977 case CPU_ONLINE:
978 case CPU_ONLINE_FROZEN:
978 create_palinfo_proc_entries(hotcpu); 979 create_palinfo_proc_entries(hotcpu);
979 break; 980 break;
980 case CPU_DEAD: 981 case CPU_DEAD:
982 case CPU_DEAD_FROZEN:
981 remove_palinfo_proc_entries(hotcpu); 983 remove_palinfo_proc_entries(hotcpu);
982 break; 984 break;
983 } 985 }
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c
index abc7ad035886..e7191ca30b16 100644
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@ -23,7 +23,6 @@
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/sched.h> 24#include <linux/sched.h>
25#include <linux/interrupt.h> 25#include <linux/interrupt.h>
26#include <linux/smp_lock.h>
27#include <linux/proc_fs.h> 26#include <linux/proc_fs.h>
28#include <linux/seq_file.h> 27#include <linux/seq_file.h>
29#include <linux/init.h> 28#include <linux/init.h>
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
index d7b7d3da1ebb..d1c3ed9943e5 100644
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -20,20 +20,19 @@
20#include <linux/personality.h> 20#include <linux/personality.h>
21#include <linux/sched.h> 21#include <linux/sched.h>
22#include <linux/slab.h> 22#include <linux/slab.h>
23#include <linux/smp_lock.h>
24#include <linux/stddef.h> 23#include <linux/stddef.h>
25#include <linux/thread_info.h> 24#include <linux/thread_info.h>
26#include <linux/unistd.h> 25#include <linux/unistd.h>
27#include <linux/efi.h> 26#include <linux/efi.h>
28#include <linux/interrupt.h> 27#include <linux/interrupt.h>
29#include <linux/delay.h> 28#include <linux/delay.h>
29#include <linux/kdebug.h>
30 30
31#include <asm/cpu.h> 31#include <asm/cpu.h>
32#include <asm/delay.h> 32#include <asm/delay.h>
33#include <asm/elf.h> 33#include <asm/elf.h>
34#include <asm/ia32.h> 34#include <asm/ia32.h>
35#include <asm/irq.h> 35#include <asm/irq.h>
36#include <asm/kdebug.h>
37#include <asm/kexec.h> 36#include <asm/kexec.h>
38#include <asm/pgalloc.h> 37#include <asm/pgalloc.h>
39#include <asm/processor.h> 38#include <asm/processor.h>
diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c
index af9f8754d847..89f6b138a62c 100644
--- a/arch/ia64/kernel/salinfo.c
+++ b/arch/ia64/kernel/salinfo.c
@@ -42,7 +42,6 @@
42#include <linux/proc_fs.h> 42#include <linux/proc_fs.h>
43#include <linux/module.h> 43#include <linux/module.h>
44#include <linux/smp.h> 44#include <linux/smp.h>
45#include <linux/smp_lock.h>
46#include <linux/timer.h> 45#include <linux/timer.h>
47#include <linux/vmalloc.h> 46#include <linux/vmalloc.h>
48 47
@@ -583,6 +582,7 @@ salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu
583 struct salinfo_data *data; 582 struct salinfo_data *data;
584 switch (action) { 583 switch (action) {
585 case CPU_ONLINE: 584 case CPU_ONLINE:
585 case CPU_ONLINE_FROZEN:
586 spin_lock_irqsave(&data_saved_lock, flags); 586 spin_lock_irqsave(&data_saved_lock, flags);
587 for (i = 0, data = salinfo_data; 587 for (i = 0, data = salinfo_data;
588 i < ARRAY_SIZE(salinfo_data); 588 i < ARRAY_SIZE(salinfo_data);
@@ -593,6 +593,7 @@ salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu
593 spin_unlock_irqrestore(&data_saved_lock, flags); 593 spin_unlock_irqrestore(&data_saved_lock, flags);
594 break; 594 break;
595 case CPU_DEAD: 595 case CPU_DEAD:
596 case CPU_DEAD_FROZEN:
596 spin_lock_irqsave(&data_saved_lock, flags); 597 spin_lock_irqsave(&data_saved_lock, flags);
597 for (i = 0, data = salinfo_data; 598 for (i = 0, data = salinfo_data;
598 i < ARRAY_SIZE(salinfo_data); 599 i < ARRAY_SIZE(salinfo_data);
diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c
index 034b81d62bb1..aeec8184e862 100644
--- a/arch/ia64/kernel/signal.c
+++ b/arch/ia64/kernel/signal.c
@@ -14,7 +14,6 @@
14#include <linux/sched.h> 14#include <linux/sched.h>
15#include <linux/signal.h> 15#include <linux/signal.h>
16#include <linux/smp.h> 16#include <linux/smp.h>
17#include <linux/smp_lock.h>
18#include <linux/stddef.h> 17#include <linux/stddef.h>
19#include <linux/tty.h> 18#include <linux/tty.h>
20#include <linux/binfmts.h> 19#include <linux/binfmts.h>
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c
index ff7df439da6d..a44792d0f3a9 100644
--- a/arch/ia64/kernel/smpboot.c
+++ b/arch/ia64/kernel/smpboot.c
@@ -35,7 +35,6 @@
35#include <linux/mm.h> 35#include <linux/mm.h>
36#include <linux/notifier.h> 36#include <linux/notifier.h>
37#include <linux/smp.h> 37#include <linux/smp.h>
38#include <linux/smp_lock.h>
39#include <linux/spinlock.h> 38#include <linux/spinlock.h>
40#include <linux/efi.h> 39#include <linux/efi.h>
41#include <linux/percpu.h> 40#include <linux/percpu.h>
diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c
index 2fcaa2051aa3..1eda194b9559 100644
--- a/arch/ia64/kernel/sys_ia64.c
+++ b/arch/ia64/kernel/sys_ia64.c
@@ -13,7 +13,6 @@
13#include <linux/shm.h> 13#include <linux/shm.h>
14#include <linux/file.h> /* doh, must come after sched.h... */ 14#include <linux/file.h> /* doh, must come after sched.h... */
15#include <linux/smp.h> 15#include <linux/smp.h>
16#include <linux/smp_lock.h>
17#include <linux/syscalls.h> 16#include <linux/syscalls.h>
18#include <linux/highuid.h> 17#include <linux/highuid.h>
19#include <linux/hugetlb.h> 18#include <linux/hugetlb.h>
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 39e0cd3a0884..a06667c7acc0 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -235,7 +235,7 @@ ia64_init_itm (void)
235 235
236static struct irqaction timer_irqaction = { 236static struct irqaction timer_irqaction = {
237 .handler = timer_interrupt, 237 .handler = timer_interrupt,
238 .flags = IRQF_DISABLED, 238 .flags = IRQF_DISABLED | IRQF_IRQPOLL,
239 .name = "timer" 239 .name = "timer"
240}; 240};
241 241
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c
index 687500ddb4b8..94ae3c87d828 100644
--- a/arch/ia64/kernel/topology.c
+++ b/arch/ia64/kernel/topology.c
@@ -412,9 +412,11 @@ static int __cpuinit cache_cpu_callback(struct notifier_block *nfb,
412 sys_dev = get_cpu_sysdev(cpu); 412 sys_dev = get_cpu_sysdev(cpu);
413 switch (action) { 413 switch (action) {
414 case CPU_ONLINE: 414 case CPU_ONLINE:
415 case CPU_ONLINE_FROZEN:
415 cache_add_dev(sys_dev); 416 cache_add_dev(sys_dev);
416 break; 417 break;
417 case CPU_DEAD: 418 case CPU_DEAD:
419 case CPU_DEAD_FROZEN:
418 cache_remove_dev(sys_dev); 420 cache_remove_dev(sys_dev);
419 break; 421 break;
420 } 422 }
diff --git a/arch/ia64/kernel/traps.c b/arch/ia64/kernel/traps.c
index cd5189f99629..b8e0d70bf989 100644
--- a/arch/ia64/kernel/traps.c
+++ b/arch/ia64/kernel/traps.c
@@ -16,33 +16,17 @@
16#include <linux/hardirq.h> 16#include <linux/hardirq.h>
17#include <linux/kprobes.h> 17#include <linux/kprobes.h>
18#include <linux/delay.h> /* for ssleep() */ 18#include <linux/delay.h> /* for ssleep() */
19#include <linux/kdebug.h>
19 20
20#include <asm/fpswa.h> 21#include <asm/fpswa.h>
21#include <asm/ia32.h> 22#include <asm/ia32.h>
22#include <asm/intrinsics.h> 23#include <asm/intrinsics.h>
23#include <asm/processor.h> 24#include <asm/processor.h>
24#include <asm/uaccess.h> 25#include <asm/uaccess.h>
25#include <asm/kdebug.h>
26 26
27fpswa_interface_t *fpswa_interface; 27fpswa_interface_t *fpswa_interface;
28EXPORT_SYMBOL(fpswa_interface); 28EXPORT_SYMBOL(fpswa_interface);
29 29
30ATOMIC_NOTIFIER_HEAD(ia64die_chain);
31
32int
33register_die_notifier(struct notifier_block *nb)
34{
35 return atomic_notifier_chain_register(&ia64die_chain, nb);
36}
37EXPORT_SYMBOL_GPL(register_die_notifier);
38
39int
40unregister_die_notifier(struct notifier_block *nb)
41{
42 return atomic_notifier_chain_unregister(&ia64die_chain, nb);
43}
44EXPORT_SYMBOL_GPL(unregister_die_notifier);
45
46void __init 30void __init
47trap_init (void) 31trap_init (void)
48{ 32{
diff --git a/arch/ia64/kernel/unaligned.c b/arch/ia64/kernel/unaligned.c
index 1e357550c776..fe6aa5a9f8fa 100644
--- a/arch/ia64/kernel/unaligned.c
+++ b/arch/ia64/kernel/unaligned.c
@@ -15,7 +15,6 @@
15 */ 15 */
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h> 17#include <linux/sched.h>
18#include <linux/smp_lock.h>
19#include <linux/tty.h> 18#include <linux/tty.h>
20 19
21#include <asm/intrinsics.h> 20#include <asm/intrinsics.h>
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
index 872da7a2accd..94844442812a 100644
--- a/arch/ia64/mm/discontig.c
+++ b/arch/ia64/mm/discontig.c
@@ -693,6 +693,7 @@ void __init paging_init(void)
693 zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page)); 693 zero_page_memmap_ptr = virt_to_page(ia64_imva(empty_zero_page));
694} 694}
695 695
696#ifdef CONFIG_MEMORY_HOTPLUG
696pg_data_t *arch_alloc_nodedata(int nid) 697pg_data_t *arch_alloc_nodedata(int nid)
697{ 698{
698 unsigned long size = compute_pernodesize(nid); 699 unsigned long size = compute_pernodesize(nid);
@@ -710,3 +711,4 @@ void arch_refresh_nodedata(int update_node, pg_data_t *update_pgdat)
710 pgdat_list[update_node] = update_pgdat; 711 pgdat_list[update_node] = update_pgdat;
711 scatter_node_data(); 712 scatter_node_data();
712} 713}
714#endif
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index 59f3ab937615..21658e02116c 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -7,15 +7,14 @@
7#include <linux/sched.h> 7#include <linux/sched.h>
8#include <linux/kernel.h> 8#include <linux/kernel.h>
9#include <linux/mm.h> 9#include <linux/mm.h>
10#include <linux/smp_lock.h>
11#include <linux/interrupt.h> 10#include <linux/interrupt.h>
12#include <linux/kprobes.h> 11#include <linux/kprobes.h>
12#include <linux/kdebug.h>
13 13
14#include <asm/pgtable.h> 14#include <asm/pgtable.h>
15#include <asm/processor.h> 15#include <asm/processor.h>
16#include <asm/system.h> 16#include <asm/system.h>
17#include <asm/uaccess.h> 17#include <asm/uaccess.h>
18#include <asm/kdebug.h>
19 18
20extern void die (char *, struct pt_regs *, long); 19extern void die (char *, struct pt_regs *, long);
21 20
diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c
index c7c90f4f4298..1346b7f05397 100644
--- a/arch/ia64/mm/hugetlbpage.c
+++ b/arch/ia64/mm/hugetlbpage.c
@@ -13,7 +13,6 @@
13#include <linux/mm.h> 13#include <linux/mm.h>
14#include <linux/hugetlb.h> 14#include <linux/hugetlb.h>
15#include <linux/pagemap.h> 15#include <linux/pagemap.h>
16#include <linux/smp_lock.h>
17#include <linux/slab.h> 16#include <linux/slab.h>
18#include <linux/sysctl.h> 17#include <linux/sysctl.h>
19#include <asm/mman.h> 18#include <asm/mman.h>
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c
index 9f635896d252..3549f3b42592 100644
--- a/arch/ia64/pci/pci.c
+++ b/arch/ia64/pci/pci.c
@@ -18,7 +18,6 @@
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/ioport.h> 19#include <linux/ioport.h>
20#include <linux/slab.h> 20#include <linux/slab.h>
21#include <linux/smp_lock.h>
22#include <linux/spinlock.h> 21#include <linux/spinlock.h>
23 22
24#include <asm/machvec.h> 23#include <asm/machvec.h>
diff --git a/arch/ia64/sn/kernel/xpc_main.c b/arch/ia64/sn/kernel/xpc_main.c
index 68355ef6f841..e336e1692a73 100644
--- a/arch/ia64/sn/kernel/xpc_main.c
+++ b/arch/ia64/sn/kernel/xpc_main.c
@@ -55,9 +55,9 @@
55#include <linux/delay.h> 55#include <linux/delay.h>
56#include <linux/reboot.h> 56#include <linux/reboot.h>
57#include <linux/completion.h> 57#include <linux/completion.h>
58#include <linux/kdebug.h>
58#include <asm/sn/intr.h> 59#include <asm/sn/intr.h>
59#include <asm/sn/sn_sal.h> 60#include <asm/sn/sn_sal.h>
60#include <asm/kdebug.h>
61#include <asm/uaccess.h> 61#include <asm/uaccess.h>
62#include <asm/sn/xpc.h> 62#include <asm/sn/xpc.h>
63 63
@@ -1332,7 +1332,7 @@ xpc_init(void)
1332 dev_warn(xpc_part, "can't register reboot notifier\n"); 1332 dev_warn(xpc_part, "can't register reboot notifier\n");
1333 } 1333 }
1334 1334
1335 /* add ourselves to the die_notifier list (i.e., ia64die_chain) */ 1335 /* add ourselves to the die_notifier list */
1336 ret = register_die_notifier(&xpc_die_notifier); 1336 ret = register_die_notifier(&xpc_die_notifier);
1337 if (ret != 0) { 1337 if (ret != 0) {
1338 dev_warn(xpc_part, "can't register die notifier\n"); 1338 dev_warn(xpc_part, "can't register die notifier\n");