diff options
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/Kconfig | 27 | ||||
-rw-r--r-- | arch/ia64/include/asm/atomic.h | 6 | ||||
-rw-r--r-- | arch/ia64/include/asm/bitops.h | 3 | ||||
-rw-r--r-- | arch/ia64/include/asm/clocksource.h | 10 | ||||
-rw-r--r-- | arch/ia64/include/asm/paravirt.h | 4 | ||||
-rw-r--r-- | arch/ia64/include/asm/processor.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/ptrace.h | 1 | ||||
-rw-r--r-- | arch/ia64/include/asm/sn/tioce.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/spinlock.h | 2 | ||||
-rw-r--r-- | arch/ia64/include/asm/unistd.h | 3 | ||||
-rw-r--r-- | arch/ia64/kernel/cyclone.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/entry.S | 1 | ||||
-rw-r--r-- | arch/ia64/kernel/module.c | 16 | ||||
-rw-r--r-- | arch/ia64/kernel/paravirt.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/smp.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/smpboot.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/time.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/uncached.c | 2 | ||||
-rw-r--r-- | arch/ia64/kvm/Kconfig | 1 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/irq.c | 14 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/sn2/timer.c | 2 |
21 files changed, 36 insertions, 70 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 578701ea03d4..64c7ab7e7a81 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -105,6 +105,9 @@ config GENERIC_IOMAP | |||
105 | bool | 105 | bool |
106 | default y | 106 | default y |
107 | 107 | ||
108 | config ARCH_CLOCKSOURCE_DATA | ||
109 | def_bool y | ||
110 | |||
108 | config SCHED_OMIT_FRAME_POINTER | 111 | config SCHED_OMIT_FRAME_POINTER |
109 | bool | 112 | bool |
110 | default y | 113 | default y |
@@ -631,27 +634,6 @@ source "drivers/pci/hotplug/Kconfig" | |||
631 | 634 | ||
632 | source "drivers/pcmcia/Kconfig" | 635 | source "drivers/pcmcia/Kconfig" |
633 | 636 | ||
634 | config DMAR | ||
635 | bool "Support for DMA Remapping Devices (EXPERIMENTAL)" | ||
636 | depends on IA64_GENERIC && ACPI && EXPERIMENTAL | ||
637 | help | ||
638 | DMA remapping (DMAR) devices support enables independent address | ||
639 | translations for Direct Memory Access (DMA) from devices. | ||
640 | These DMA remapping devices are reported via ACPI tables | ||
641 | and include PCI device scope covered by these DMA | ||
642 | remapping devices. | ||
643 | |||
644 | config DMAR_DEFAULT_ON | ||
645 | def_bool y | ||
646 | prompt "Enable DMA Remapping Devices by default" | ||
647 | depends on DMAR | ||
648 | help | ||
649 | Selecting this option will enable a DMAR device at boot time if | ||
650 | one is found. If this option is not selected, DMAR support can | ||
651 | be enabled by passing intel_iommu=on to the kernel. It is | ||
652 | recommended you say N here while the DMAR code remains | ||
653 | experimental. | ||
654 | |||
655 | endmenu | 637 | endmenu |
656 | 638 | ||
657 | endif | 639 | endif |
@@ -685,6 +667,3 @@ source "lib/Kconfig" | |||
685 | 667 | ||
686 | config IOMMU_HELPER | 668 | config IOMMU_HELPER |
687 | def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB) | 669 | def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB) |
688 | |||
689 | config IOMMU_API | ||
690 | def_bool (DMAR) | ||
diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h index 446881439675..3fad89ee01cb 100644 --- a/arch/ia64/include/asm/atomic.h +++ b/arch/ia64/include/asm/atomic.h | |||
@@ -90,7 +90,7 @@ ia64_atomic64_sub (__s64 i, atomic64_t *v) | |||
90 | (cmpxchg(&((v)->counter), old, new)) | 90 | (cmpxchg(&((v)->counter), old, new)) |
91 | #define atomic64_xchg(v, new) (xchg(&((v)->counter), new)) | 91 | #define atomic64_xchg(v, new) (xchg(&((v)->counter), new)) |
92 | 92 | ||
93 | static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | 93 | static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u) |
94 | { | 94 | { |
95 | int c, old; | 95 | int c, old; |
96 | c = atomic_read(v); | 96 | c = atomic_read(v); |
@@ -102,10 +102,9 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | |||
102 | break; | 102 | break; |
103 | c = old; | 103 | c = old; |
104 | } | 104 | } |
105 | return c != (u); | 105 | return c; |
106 | } | 106 | } |
107 | 107 | ||
108 | #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) | ||
109 | 108 | ||
110 | static __inline__ long atomic64_add_unless(atomic64_t *v, long a, long u) | 109 | static __inline__ long atomic64_add_unless(atomic64_t *v, long a, long u) |
111 | { | 110 | { |
@@ -216,5 +215,4 @@ atomic64_add_negative (__s64 i, atomic64_t *v) | |||
216 | #define smp_mb__before_atomic_inc() barrier() | 215 | #define smp_mb__before_atomic_inc() barrier() |
217 | #define smp_mb__after_atomic_inc() barrier() | 216 | #define smp_mb__after_atomic_inc() barrier() |
218 | 217 | ||
219 | #include <asm-generic/atomic-long.h> | ||
220 | #endif /* _ASM_IA64_ATOMIC_H */ | 218 | #endif /* _ASM_IA64_ATOMIC_H */ |
diff --git a/arch/ia64/include/asm/bitops.h b/arch/ia64/include/asm/bitops.h index b76f7e009218..8e20bff39f79 100644 --- a/arch/ia64/include/asm/bitops.h +++ b/arch/ia64/include/asm/bitops.h | |||
@@ -458,8 +458,7 @@ static __inline__ unsigned long __arch_hweight64(unsigned long x) | |||
458 | 458 | ||
459 | #include <asm-generic/bitops/le.h> | 459 | #include <asm-generic/bitops/le.h> |
460 | 460 | ||
461 | #define ext2_set_bit_atomic(l,n,a) test_and_set_bit(n,a) | 461 | #include <asm-generic/bitops/ext2-atomic-setbit.h> |
462 | #define ext2_clear_bit_atomic(l,n,a) test_and_clear_bit(n,a) | ||
463 | 462 | ||
464 | #include <asm-generic/bitops/sched.h> | 463 | #include <asm-generic/bitops/sched.h> |
465 | 464 | ||
diff --git a/arch/ia64/include/asm/clocksource.h b/arch/ia64/include/asm/clocksource.h new file mode 100644 index 000000000000..5c8596e4cb02 --- /dev/null +++ b/arch/ia64/include/asm/clocksource.h | |||
@@ -0,0 +1,10 @@ | |||
1 | /* IA64-specific clocksource additions */ | ||
2 | |||
3 | #ifndef _ASM_IA64_CLOCKSOURCE_H | ||
4 | #define _ASM_IA64_CLOCKSOURCE_H | ||
5 | |||
6 | struct arch_clocksource_data { | ||
7 | void *fsys_mmio; /* used by fsyscall asm code */ | ||
8 | }; | ||
9 | |||
10 | #endif /* _ASM_IA64_CLOCKSOURCE_H */ | ||
diff --git a/arch/ia64/include/asm/paravirt.h b/arch/ia64/include/asm/paravirt.h index 2eb0a981a09a..32551d304cd7 100644 --- a/arch/ia64/include/asm/paravirt.h +++ b/arch/ia64/include/asm/paravirt.h | |||
@@ -281,6 +281,10 @@ paravirt_init_missing_ticks_accounting(int cpu) | |||
281 | pv_time_ops.init_missing_ticks_accounting(cpu); | 281 | pv_time_ops.init_missing_ticks_accounting(cpu); |
282 | } | 282 | } |
283 | 283 | ||
284 | struct jump_label_key; | ||
285 | extern struct jump_label_key paravirt_steal_enabled; | ||
286 | extern struct jump_label_key paravirt_steal_rq_enabled; | ||
287 | |||
284 | static inline int | 288 | static inline int |
285 | paravirt_do_steal_accounting(unsigned long *new_itm) | 289 | paravirt_do_steal_accounting(unsigned long *new_itm) |
286 | { | 290 | { |
diff --git a/arch/ia64/include/asm/processor.h b/arch/ia64/include/asm/processor.h index 03afe7970748..d9f397fae03e 100644 --- a/arch/ia64/include/asm/processor.h +++ b/arch/ia64/include/asm/processor.h | |||
@@ -75,7 +75,7 @@ | |||
75 | #include <asm/percpu.h> | 75 | #include <asm/percpu.h> |
76 | #include <asm/rse.h> | 76 | #include <asm/rse.h> |
77 | #include <asm/unwind.h> | 77 | #include <asm/unwind.h> |
78 | #include <asm/atomic.h> | 78 | #include <linux/atomic.h> |
79 | #ifdef CONFIG_NUMA | 79 | #ifdef CONFIG_NUMA |
80 | #include <asm/nodedata.h> | 80 | #include <asm/nodedata.h> |
81 | #endif | 81 | #endif |
diff --git a/arch/ia64/include/asm/ptrace.h b/arch/ia64/include/asm/ptrace.h index 7ae9c3f15a1c..f5cb27614e35 100644 --- a/arch/ia64/include/asm/ptrace.h +++ b/arch/ia64/include/asm/ptrace.h | |||
@@ -286,7 +286,6 @@ static inline unsigned long user_stack_pointer(struct pt_regs *regs) | |||
286 | struct task_struct; /* forward decl */ | 286 | struct task_struct; /* forward decl */ |
287 | struct unw_frame_info; /* forward decl */ | 287 | struct unw_frame_info; /* forward decl */ |
288 | 288 | ||
289 | extern void show_regs (struct pt_regs *); | ||
290 | extern void ia64_do_show_stack (struct unw_frame_info *, void *); | 289 | extern void ia64_do_show_stack (struct unw_frame_info *, void *); |
291 | extern unsigned long ia64_get_user_rbs_end (struct task_struct *, struct pt_regs *, | 290 | extern unsigned long ia64_get_user_rbs_end (struct task_struct *, struct pt_regs *, |
292 | unsigned long *); | 291 | unsigned long *); |
diff --git a/arch/ia64/include/asm/sn/tioce.h b/arch/ia64/include/asm/sn/tioce.h index 893468e1b41b..6eae8ada90f0 100644 --- a/arch/ia64/include/asm/sn/tioce.h +++ b/arch/ia64/include/asm/sn/tioce.h | |||
@@ -467,7 +467,7 @@ typedef volatile struct tioce { | |||
467 | #define CE_LSI_GB_CFG1_RXL0S_THS_SHFT 0 | 467 | #define CE_LSI_GB_CFG1_RXL0S_THS_SHFT 0 |
468 | #define CE_LSI_GB_CFG1_RXL0S_THS_MASK (0xffULL << 0) | 468 | #define CE_LSI_GB_CFG1_RXL0S_THS_MASK (0xffULL << 0) |
469 | #define CE_LSI_GB_CFG1_RXL0S_SMP_SHFT 8 | 469 | #define CE_LSI_GB_CFG1_RXL0S_SMP_SHFT 8 |
470 | #define CE_LSI_GB_CFG1_RXL0S_SMP_MASK (0xfULL << 8); | 470 | #define CE_LSI_GB_CFG1_RXL0S_SMP_MASK (0xfULL << 8) |
471 | #define CE_LSI_GB_CFG1_RXL0S_ADJ_SHFT 12 | 471 | #define CE_LSI_GB_CFG1_RXL0S_ADJ_SHFT 12 |
472 | #define CE_LSI_GB_CFG1_RXL0S_ADJ_MASK (0x7ULL << 12) | 472 | #define CE_LSI_GB_CFG1_RXL0S_ADJ_MASK (0x7ULL << 12) |
473 | #define CE_LSI_GB_CFG1_RXL0S_FLT_SHFT 15 | 473 | #define CE_LSI_GB_CFG1_RXL0S_FLT_SHFT 15 |
diff --git a/arch/ia64/include/asm/spinlock.h b/arch/ia64/include/asm/spinlock.h index 1a91c9121d17..b77768d35f93 100644 --- a/arch/ia64/include/asm/spinlock.h +++ b/arch/ia64/include/asm/spinlock.h | |||
@@ -13,7 +13,7 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/bitops.h> | 14 | #include <linux/bitops.h> |
15 | 15 | ||
16 | #include <asm/atomic.h> | 16 | #include <linux/atomic.h> |
17 | #include <asm/intrinsics.h> | 17 | #include <asm/intrinsics.h> |
18 | #include <asm/system.h> | 18 | #include <asm/system.h> |
19 | 19 | ||
diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h index 1cf0f496f744..7c928da35b17 100644 --- a/arch/ia64/include/asm/unistd.h +++ b/arch/ia64/include/asm/unistd.h | |||
@@ -320,11 +320,12 @@ | |||
320 | #define __NR_clock_adjtime 1328 | 320 | #define __NR_clock_adjtime 1328 |
321 | #define __NR_syncfs 1329 | 321 | #define __NR_syncfs 1329 |
322 | #define __NR_setns 1330 | 322 | #define __NR_setns 1330 |
323 | #define __NR_sendmmsg 1331 | ||
323 | 324 | ||
324 | #ifdef __KERNEL__ | 325 | #ifdef __KERNEL__ |
325 | 326 | ||
326 | 327 | ||
327 | #define NR_syscalls 307 /* length of syscall table */ | 328 | #define NR_syscalls 308 /* length of syscall table */ |
328 | 329 | ||
329 | /* | 330 | /* |
330 | * The following defines stop scripts/checksyscalls.sh from complaining about | 331 | * The following defines stop scripts/checksyscalls.sh from complaining about |
diff --git a/arch/ia64/kernel/cyclone.c b/arch/ia64/kernel/cyclone.c index f64097b5118a..4826ff957a3d 100644 --- a/arch/ia64/kernel/cyclone.c +++ b/arch/ia64/kernel/cyclone.c | |||
@@ -115,7 +115,7 @@ int __init init_cyclone_clock(void) | |||
115 | } | 115 | } |
116 | /* initialize last tick */ | 116 | /* initialize last tick */ |
117 | cyclone_mc = cyclone_timer; | 117 | cyclone_mc = cyclone_timer; |
118 | clocksource_cyclone.fsys_mmio = cyclone_timer; | 118 | clocksource_cyclone.archdata.fsys_mmio = cyclone_timer; |
119 | clocksource_register_hz(&clocksource_cyclone, CYCLONE_TIMER_FREQ); | 119 | clocksource_register_hz(&clocksource_cyclone, CYCLONE_TIMER_FREQ); |
120 | 120 | ||
121 | return 0; | 121 | return 0; |
diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S index 9ca80193cd4e..97dd2abdeb1a 100644 --- a/arch/ia64/kernel/entry.S +++ b/arch/ia64/kernel/entry.S | |||
@@ -1776,6 +1776,7 @@ sys_call_table: | |||
1776 | data8 sys_clock_adjtime | 1776 | data8 sys_clock_adjtime |
1777 | data8 sys_syncfs | 1777 | data8 sys_syncfs |
1778 | data8 sys_setns // 1330 | 1778 | data8 sys_setns // 1330 |
1779 | data8 sys_sendmmsg | ||
1779 | 1780 | ||
1780 | .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls | 1781 | .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls |
1781 | #endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */ | 1782 | #endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */ |
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c index 1481b0a28ca0..24603be24c14 100644 --- a/arch/ia64/kernel/module.c +++ b/arch/ia64/kernel/module.c | |||
@@ -304,14 +304,6 @@ plt_target (struct plt_entry *plt) | |||
304 | 304 | ||
305 | #endif /* !USE_BRL */ | 305 | #endif /* !USE_BRL */ |
306 | 306 | ||
307 | void * | ||
308 | module_alloc (unsigned long size) | ||
309 | { | ||
310 | if (!size) | ||
311 | return NULL; | ||
312 | return vmalloc(size); | ||
313 | } | ||
314 | |||
315 | void | 307 | void |
316 | module_free (struct module *mod, void *module_region) | 308 | module_free (struct module *mod, void *module_region) |
317 | { | 309 | { |
@@ -853,14 +845,6 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind | |||
853 | return 0; | 845 | return 0; |
854 | } | 846 | } |
855 | 847 | ||
856 | int | ||
857 | apply_relocate (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symindex, | ||
858 | unsigned int relsec, struct module *mod) | ||
859 | { | ||
860 | printk(KERN_ERR "module %s: REL relocs in section %u unsupported\n", mod->name, relsec); | ||
861 | return -ENOEXEC; | ||
862 | } | ||
863 | |||
864 | /* | 848 | /* |
865 | * Modules contain a single unwind table which covers both the core and the init text | 849 | * Modules contain a single unwind table which covers both the core and the init text |
866 | * sections but since the two are not contiguous, we need to split this table up such that | 850 | * sections but since the two are not contiguous, we need to split this table up such that |
diff --git a/arch/ia64/kernel/paravirt.c b/arch/ia64/kernel/paravirt.c index a21d7bb9c69c..100868216c55 100644 --- a/arch/ia64/kernel/paravirt.c +++ b/arch/ia64/kernel/paravirt.c | |||
@@ -634,6 +634,8 @@ struct pv_irq_ops pv_irq_ops = { | |||
634 | * pv_time_ops | 634 | * pv_time_ops |
635 | * time operations | 635 | * time operations |
636 | */ | 636 | */ |
637 | struct jump_label_key paravirt_steal_enabled; | ||
638 | struct jump_label_key paravirt_steal_rq_enabled; | ||
637 | 639 | ||
638 | static int | 640 | static int |
639 | ia64_native_do_steal_accounting(unsigned long *new_itm) | 641 | ia64_native_do_steal_accounting(unsigned long *new_itm) |
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c index be450a3e9871..0bd537b4ea6b 100644 --- a/arch/ia64/kernel/smp.c +++ b/arch/ia64/kernel/smp.c | |||
@@ -32,7 +32,7 @@ | |||
32 | #include <linux/bitops.h> | 32 | #include <linux/bitops.h> |
33 | #include <linux/kexec.h> | 33 | #include <linux/kexec.h> |
34 | 34 | ||
35 | #include <asm/atomic.h> | 35 | #include <linux/atomic.h> |
36 | #include <asm/current.h> | 36 | #include <asm/current.h> |
37 | #include <asm/delay.h> | 37 | #include <asm/delay.h> |
38 | #include <asm/machvec.h> | 38 | #include <asm/machvec.h> |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index 14ec641003da..559097986672 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -40,7 +40,7 @@ | |||
40 | #include <linux/percpu.h> | 40 | #include <linux/percpu.h> |
41 | #include <linux/bitops.h> | 41 | #include <linux/bitops.h> |
42 | 42 | ||
43 | #include <asm/atomic.h> | 43 | #include <linux/atomic.h> |
44 | #include <asm/cache.h> | 44 | #include <asm/cache.h> |
45 | #include <asm/current.h> | 45 | #include <asm/current.h> |
46 | #include <asm/delay.h> | 46 | #include <asm/delay.h> |
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index 85118dfe9bb5..43920de425f1 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c | |||
@@ -468,7 +468,7 @@ void update_vsyscall(struct timespec *wall, struct timespec *wtm, | |||
468 | fsyscall_gtod_data.clk_mask = c->mask; | 468 | fsyscall_gtod_data.clk_mask = c->mask; |
469 | fsyscall_gtod_data.clk_mult = mult; | 469 | fsyscall_gtod_data.clk_mult = mult; |
470 | fsyscall_gtod_data.clk_shift = c->shift; | 470 | fsyscall_gtod_data.clk_shift = c->shift; |
471 | fsyscall_gtod_data.clk_fsys_mmio = c->fsys_mmio; | 471 | fsyscall_gtod_data.clk_fsys_mmio = c->archdata.fsys_mmio; |
472 | fsyscall_gtod_data.clk_cycle_last = c->cycle_last; | 472 | fsyscall_gtod_data.clk_cycle_last = c->cycle_last; |
473 | 473 | ||
474 | /* copy kernel time structures */ | 474 | /* copy kernel time structures */ |
diff --git a/arch/ia64/kernel/uncached.c b/arch/ia64/kernel/uncached.c index c4696d217ce0..6a867dc45c05 100644 --- a/arch/ia64/kernel/uncached.c +++ b/arch/ia64/kernel/uncached.c | |||
@@ -25,7 +25,7 @@ | |||
25 | #include <asm/pal.h> | 25 | #include <asm/pal.h> |
26 | #include <asm/system.h> | 26 | #include <asm/system.h> |
27 | #include <asm/pgtable.h> | 27 | #include <asm/pgtable.h> |
28 | #include <asm/atomic.h> | 28 | #include <linux/atomic.h> |
29 | #include <asm/tlbflush.h> | 29 | #include <asm/tlbflush.h> |
30 | #include <asm/sn/arch.h> | 30 | #include <asm/sn/arch.h> |
31 | 31 | ||
diff --git a/arch/ia64/kvm/Kconfig b/arch/ia64/kvm/Kconfig index fa4d1e59deb0..9806e55f91be 100644 --- a/arch/ia64/kvm/Kconfig +++ b/arch/ia64/kvm/Kconfig | |||
@@ -49,6 +49,5 @@ config KVM_INTEL | |||
49 | extensions. | 49 | extensions. |
50 | 50 | ||
51 | source drivers/vhost/Kconfig | 51 | source drivers/vhost/Kconfig |
52 | source drivers/virtio/Kconfig | ||
53 | 52 | ||
54 | endif # VIRTUALIZATION | 53 | endif # VIRTUALIZATION |
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c index 81a1f4e6bcd8..485c42d97e83 100644 --- a/arch/ia64/sn/kernel/irq.c +++ b/arch/ia64/sn/kernel/irq.c | |||
@@ -112,8 +112,6 @@ static void sn_ack_irq(struct irq_data *data) | |||
112 | irq_move_irq(data); | 112 | irq_move_irq(data); |
113 | } | 113 | } |
114 | 114 | ||
115 | static void sn_irq_info_free(struct rcu_head *head); | ||
116 | |||
117 | struct sn_irq_info *sn_retarget_vector(struct sn_irq_info *sn_irq_info, | 115 | struct sn_irq_info *sn_retarget_vector(struct sn_irq_info *sn_irq_info, |
118 | nasid_t nasid, int slice) | 116 | nasid_t nasid, int slice) |
119 | { | 117 | { |
@@ -177,7 +175,7 @@ struct sn_irq_info *sn_retarget_vector(struct sn_irq_info *sn_irq_info, | |||
177 | spin_lock(&sn_irq_info_lock); | 175 | spin_lock(&sn_irq_info_lock); |
178 | list_replace_rcu(&sn_irq_info->list, &new_irq_info->list); | 176 | list_replace_rcu(&sn_irq_info->list, &new_irq_info->list); |
179 | spin_unlock(&sn_irq_info_lock); | 177 | spin_unlock(&sn_irq_info_lock); |
180 | call_rcu(&sn_irq_info->rcu, sn_irq_info_free); | 178 | kfree_rcu(sn_irq_info, rcu); |
181 | 179 | ||
182 | 180 | ||
183 | finish_up: | 181 | finish_up: |
@@ -338,14 +336,6 @@ static void unregister_intr_pda(struct sn_irq_info *sn_irq_info) | |||
338 | rcu_read_unlock(); | 336 | rcu_read_unlock(); |
339 | } | 337 | } |
340 | 338 | ||
341 | static void sn_irq_info_free(struct rcu_head *head) | ||
342 | { | ||
343 | struct sn_irq_info *sn_irq_info; | ||
344 | |||
345 | sn_irq_info = container_of(head, struct sn_irq_info, rcu); | ||
346 | kfree(sn_irq_info); | ||
347 | } | ||
348 | |||
349 | void sn_irq_fixup(struct pci_dev *pci_dev, struct sn_irq_info *sn_irq_info) | 339 | void sn_irq_fixup(struct pci_dev *pci_dev, struct sn_irq_info *sn_irq_info) |
350 | { | 340 | { |
351 | nasid_t nasid = sn_irq_info->irq_nasid; | 341 | nasid_t nasid = sn_irq_info->irq_nasid; |
@@ -399,7 +389,7 @@ void sn_irq_unfixup(struct pci_dev *pci_dev) | |||
399 | spin_unlock(&sn_irq_info_lock); | 389 | spin_unlock(&sn_irq_info_lock); |
400 | if (list_empty(sn_irq_lh[sn_irq_info->irq_irq])) | 390 | if (list_empty(sn_irq_lh[sn_irq_info->irq_irq])) |
401 | free_irq_vector(sn_irq_info->irq_irq); | 391 | free_irq_vector(sn_irq_info->irq_irq); |
402 | call_rcu(&sn_irq_info->rcu, sn_irq_info_free); | 392 | kfree_rcu(sn_irq_info, rcu); |
403 | pci_dev_put(pci_dev); | 393 | pci_dev_put(pci_dev); |
404 | 394 | ||
405 | } | 395 | } |
diff --git a/arch/ia64/sn/kernel/sn2/timer.c b/arch/ia64/sn/kernel/sn2/timer.c index c34efda122e1..0f8844e49363 100644 --- a/arch/ia64/sn/kernel/sn2/timer.c +++ b/arch/ia64/sn/kernel/sn2/timer.c | |||
@@ -54,7 +54,7 @@ ia64_sn_udelay (unsigned long usecs) | |||
54 | 54 | ||
55 | void __init sn_timer_init(void) | 55 | void __init sn_timer_init(void) |
56 | { | 56 | { |
57 | clocksource_sn2.fsys_mmio = RTC_COUNTER_ADDR; | 57 | clocksource_sn2.archdata.fsys_mmio = RTC_COUNTER_ADDR; |
58 | clocksource_register_hz(&clocksource_sn2, sn_rtc_cycles_per_second); | 58 | clocksource_register_hz(&clocksource_sn2, sn_rtc_cycles_per_second); |
59 | 59 | ||
60 | ia64_udelay = &ia64_sn_udelay; | 60 | ia64_udelay = &ia64_sn_udelay; |