diff options
author | Jiri Kosina <jkosina@suse.cz> | 2010-06-16 12:08:13 -0400 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2010-06-16 12:08:13 -0400 |
commit | f1bbbb6912662b9f6070c5bfc4ca9eb1f06a9d5b (patch) | |
tree | c2c130a74be25b0b2dff992e1a195e2728bdaadd /arch/ia64 | |
parent | fd0961ff67727482bb20ca7e8ea97b83e9de2ddb (diff) | |
parent | 7e27d6e778cd87b6f2415515d7127eba53fe5d02 (diff) |
Merge branch 'master' into for-next
Diffstat (limited to 'arch/ia64')
27 files changed, 82 insertions, 65 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 9676100b83ee..95610820041e 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -56,6 +56,9 @@ config MMU | |||
56 | config NEED_DMA_MAP_STATE | 56 | config NEED_DMA_MAP_STATE |
57 | def_bool y | 57 | def_bool y |
58 | 58 | ||
59 | config NEED_SG_DMA_LENGTH | ||
60 | def_bool y | ||
61 | |||
59 | config SWIOTLB | 62 | config SWIOTLB |
60 | bool | 63 | bool |
61 | 64 | ||
@@ -495,6 +498,14 @@ config HAVE_ARCH_NODEDATA_EXTENSION | |||
495 | def_bool y | 498 | def_bool y |
496 | depends on NUMA | 499 | depends on NUMA |
497 | 500 | ||
501 | config USE_PERCPU_NUMA_NODE_ID | ||
502 | def_bool y | ||
503 | depends on NUMA | ||
504 | |||
505 | config HAVE_MEMORYLESS_NODES | ||
506 | def_bool y | ||
507 | depends on NUMA | ||
508 | |||
498 | config ARCH_PROC_KCORE_TEXT | 509 | config ARCH_PROC_KCORE_TEXT |
499 | def_bool y | 510 | def_bool y |
500 | depends on PROC_KCORE | 511 | depends on PROC_KCORE |
diff --git a/arch/ia64/include/asm/acpi.h b/arch/ia64/include/asm/acpi.h index 21adbd7f90f8..837dc82a013e 100644 --- a/arch/ia64/include/asm/acpi.h +++ b/arch/ia64/include/asm/acpi.h | |||
@@ -94,7 +94,6 @@ ia64_acpi_release_global_lock (unsigned int *lock) | |||
94 | #define acpi_noirq 0 /* ACPI always enabled on IA64 */ | 94 | #define acpi_noirq 0 /* ACPI always enabled on IA64 */ |
95 | #define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */ | 95 | #define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */ |
96 | #define acpi_strict 1 /* no ACPI spec workarounds on IA64 */ | 96 | #define acpi_strict 1 /* no ACPI spec workarounds on IA64 */ |
97 | #define acpi_ht 0 /* no HT-only mode on IA64 */ | ||
98 | #endif | 97 | #endif |
99 | #define acpi_processor_cstate_check(x) (x) /* no idle limits on IA64 :) */ | 98 | #define acpi_processor_cstate_check(x) (x) /* no idle limits on IA64 :) */ |
100 | static inline void disable_acpi(void) { } | 99 | static inline void disable_acpi(void) { } |
diff --git a/arch/ia64/include/asm/asmmacro.h b/arch/ia64/include/asm/asmmacro.h index c1642fd64029..3ab6d75aa3db 100644 --- a/arch/ia64/include/asm/asmmacro.h +++ b/arch/ia64/include/asm/asmmacro.h | |||
@@ -70,12 +70,12 @@ name: | |||
70 | * path (ivt.S - TLB miss processing) or in places where it might not be | 70 | * path (ivt.S - TLB miss processing) or in places where it might not be |
71 | * safe to use a "tpa" instruction (mca_asm.S - error recovery). | 71 | * safe to use a "tpa" instruction (mca_asm.S - error recovery). |
72 | */ | 72 | */ |
73 | .section ".data.patch.vtop", "a" // declare section & section attributes | 73 | .section ".data..patch.vtop", "a" // declare section & section attributes |
74 | .previous | 74 | .previous |
75 | 75 | ||
76 | #define LOAD_PHYSICAL(pr, reg, obj) \ | 76 | #define LOAD_PHYSICAL(pr, reg, obj) \ |
77 | [1:](pr)movl reg = obj; \ | 77 | [1:](pr)movl reg = obj; \ |
78 | .xdata4 ".data.patch.vtop", 1b-. | 78 | .xdata4 ".data..patch.vtop", 1b-. |
79 | 79 | ||
80 | /* | 80 | /* |
81 | * For now, we always put in the McKinley E9 workaround. On CPUs that don't need it, | 81 | * For now, we always put in the McKinley E9 workaround. On CPUs that don't need it, |
@@ -84,11 +84,11 @@ name: | |||
84 | #define DO_MCKINLEY_E9_WORKAROUND | 84 | #define DO_MCKINLEY_E9_WORKAROUND |
85 | 85 | ||
86 | #ifdef DO_MCKINLEY_E9_WORKAROUND | 86 | #ifdef DO_MCKINLEY_E9_WORKAROUND |
87 | .section ".data.patch.mckinley_e9", "a" | 87 | .section ".data..patch.mckinley_e9", "a" |
88 | .previous | 88 | .previous |
89 | /* workaround for Itanium 2 Errata 9: */ | 89 | /* workaround for Itanium 2 Errata 9: */ |
90 | # define FSYS_RETURN \ | 90 | # define FSYS_RETURN \ |
91 | .xdata4 ".data.patch.mckinley_e9", 1f-.; \ | 91 | .xdata4 ".data..patch.mckinley_e9", 1f-.; \ |
92 | 1:{ .mib; \ | 92 | 1:{ .mib; \ |
93 | nop.m 0; \ | 93 | nop.m 0; \ |
94 | mov r16=ar.pfs; \ | 94 | mov r16=ar.pfs; \ |
@@ -107,11 +107,11 @@ name: | |||
107 | * If physical stack register size is different from DEF_NUM_STACK_REG, | 107 | * If physical stack register size is different from DEF_NUM_STACK_REG, |
108 | * dynamically patch the kernel for correct size. | 108 | * dynamically patch the kernel for correct size. |
109 | */ | 109 | */ |
110 | .section ".data.patch.phys_stack_reg", "a" | 110 | .section ".data..patch.phys_stack_reg", "a" |
111 | .previous | 111 | .previous |
112 | #define LOAD_PHYS_STACK_REG_SIZE(reg) \ | 112 | #define LOAD_PHYS_STACK_REG_SIZE(reg) \ |
113 | [1:] adds reg=IA64_NUM_PHYS_STACK_REG*8+8,r0; \ | 113 | [1:] adds reg=IA64_NUM_PHYS_STACK_REG*8+8,r0; \ |
114 | .xdata4 ".data.patch.phys_stack_reg", 1b-. | 114 | .xdata4 ".data..patch.phys_stack_reg", 1b-. |
115 | 115 | ||
116 | /* | 116 | /* |
117 | * Up until early 2004, use of .align within a function caused bad unwind info. | 117 | * Up until early 2004, use of .align within a function caused bad unwind info. |
diff --git a/arch/ia64/include/asm/cache.h b/arch/ia64/include/asm/cache.h index e7482bd628ff..988254a7d349 100644 --- a/arch/ia64/include/asm/cache.h +++ b/arch/ia64/include/asm/cache.h | |||
@@ -24,6 +24,6 @@ | |||
24 | # define SMP_CACHE_BYTES (1 << 3) | 24 | # define SMP_CACHE_BYTES (1 << 3) |
25 | #endif | 25 | #endif |
26 | 26 | ||
27 | #define __read_mostly __attribute__((__section__(".data.read_mostly"))) | 27 | #define __read_mostly __attribute__((__section__(".data..read_mostly"))) |
28 | 28 | ||
29 | #endif /* _ASM_IA64_CACHE_H */ | 29 | #endif /* _ASM_IA64_CACHE_H */ |
diff --git a/arch/ia64/include/asm/percpu.h b/arch/ia64/include/asm/percpu.h index 1bd408265694..14aa1c58912b 100644 --- a/arch/ia64/include/asm/percpu.h +++ b/arch/ia64/include/asm/percpu.h | |||
@@ -31,7 +31,7 @@ extern void *per_cpu_init(void); | |||
31 | 31 | ||
32 | #endif /* SMP */ | 32 | #endif /* SMP */ |
33 | 33 | ||
34 | #define PER_CPU_BASE_SECTION ".data.percpu" | 34 | #define PER_CPU_BASE_SECTION ".data..percpu" |
35 | 35 | ||
36 | /* | 36 | /* |
37 | * Be extremely careful when taking the address of this variable! Due to virtual | 37 | * Be extremely careful when taking the address of this variable! Due to virtual |
diff --git a/arch/ia64/include/asm/scatterlist.h b/arch/ia64/include/asm/scatterlist.h index d8e98961dec7..f299a4fb25c8 100644 --- a/arch/ia64/include/asm/scatterlist.h +++ b/arch/ia64/include/asm/scatterlist.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _ASM_IA64_SCATTERLIST_H | 1 | #ifndef _ASM_IA64_SCATTERLIST_H |
2 | #define _ASM_IA64_SCATTERLIST_H | 2 | #define _ASM_IA64_SCATTERLIST_H |
3 | 3 | ||
4 | #include <asm-generic/scatterlist.h> | ||
4 | /* | 5 | /* |
5 | * It used to be that ISA_DMA_THRESHOLD had something to do with the | 6 | * It used to be that ISA_DMA_THRESHOLD had something to do with the |
6 | * DMA-limits of ISA-devices. Nowadays, its only remaining use (apart | 7 | * DMA-limits of ISA-devices. Nowadays, its only remaining use (apart |
@@ -10,7 +11,6 @@ | |||
10 | * that's 4GB - 1. | 11 | * that's 4GB - 1. |
11 | */ | 12 | */ |
12 | #define ISA_DMA_THRESHOLD 0xffffffff | 13 | #define ISA_DMA_THRESHOLD 0xffffffff |
13 | 14 | #define ARCH_HAS_SG_CHAIN | |
14 | #include <asm-generic/scatterlist.h> | ||
15 | 15 | ||
16 | #endif /* _ASM_IA64_SCATTERLIST_H */ | 16 | #endif /* _ASM_IA64_SCATTERLIST_H */ |
diff --git a/arch/ia64/include/asm/topology.h b/arch/ia64/include/asm/topology.h index d323071d0f91..09f646753d1a 100644 --- a/arch/ia64/include/asm/topology.h +++ b/arch/ia64/include/asm/topology.h | |||
@@ -26,11 +26,6 @@ | |||
26 | #define RECLAIM_DISTANCE 15 | 26 | #define RECLAIM_DISTANCE 15 |
27 | 27 | ||
28 | /* | 28 | /* |
29 | * Returns the number of the node containing CPU 'cpu' | ||
30 | */ | ||
31 | #define cpu_to_node(cpu) (int)(cpu_to_node_map[cpu]) | ||
32 | |||
33 | /* | ||
34 | * Returns a bitmask of CPUs on Node 'node'. | 29 | * Returns a bitmask of CPUs on Node 'node'. |
35 | */ | 30 | */ |
36 | #define cpumask_of_node(node) ((node) == -1 ? \ | 31 | #define cpumask_of_node(node) ((node) == -1 ? \ |
diff --git a/arch/ia64/kernel/Makefile.gate b/arch/ia64/kernel/Makefile.gate index ab9b03a9adcc..ceeffc509764 100644 --- a/arch/ia64/kernel/Makefile.gate +++ b/arch/ia64/kernel/Makefile.gate | |||
@@ -21,7 +21,7 @@ GATECFLAGS_gate-syms.o = -r | |||
21 | $(obj)/gate-syms.o: $(obj)/gate.lds $(obj)/gate.o FORCE | 21 | $(obj)/gate-syms.o: $(obj)/gate.lds $(obj)/gate.o FORCE |
22 | $(call if_changed,gate) | 22 | $(call if_changed,gate) |
23 | 23 | ||
24 | # gate-data.o contains the gate DSO image as data in section .data.gate. | 24 | # gate-data.o contains the gate DSO image as data in section .data..gate. |
25 | # We must build gate.so before we can assemble it. | 25 | # We must build gate.so before we can assemble it. |
26 | # Note: kbuild does not track this dependency due to usage of .incbin | 26 | # Note: kbuild does not track this dependency due to usage of .incbin |
27 | $(obj)/gate-data.o: $(obj)/gate.so | 27 | $(obj)/gate-data.o: $(obj)/gate.so |
diff --git a/arch/ia64/kernel/gate-data.S b/arch/ia64/kernel/gate-data.S index 258c0a3238fb..b3ef1c72e132 100644 --- a/arch/ia64/kernel/gate-data.S +++ b/arch/ia64/kernel/gate-data.S | |||
@@ -1,3 +1,3 @@ | |||
1 | .section .data.gate, "aw" | 1 | .section .data..gate, "aw" |
2 | 2 | ||
3 | .incbin "arch/ia64/kernel/gate.so" | 3 | .incbin "arch/ia64/kernel/gate.so" |
diff --git a/arch/ia64/kernel/gate.S b/arch/ia64/kernel/gate.S index cf5e0a105e16..245d3e1ec7e1 100644 --- a/arch/ia64/kernel/gate.S +++ b/arch/ia64/kernel/gate.S | |||
@@ -21,18 +21,18 @@ | |||
21 | * to targets outside the shared object) and to avoid multi-phase kernel builds, we | 21 | * to targets outside the shared object) and to avoid multi-phase kernel builds, we |
22 | * simply create minimalistic "patch lists" in special ELF sections. | 22 | * simply create minimalistic "patch lists" in special ELF sections. |
23 | */ | 23 | */ |
24 | .section ".data.patch.fsyscall_table", "a" | 24 | .section ".data..patch.fsyscall_table", "a" |
25 | .previous | 25 | .previous |
26 | #define LOAD_FSYSCALL_TABLE(reg) \ | 26 | #define LOAD_FSYSCALL_TABLE(reg) \ |
27 | [1:] movl reg=0; \ | 27 | [1:] movl reg=0; \ |
28 | .xdata4 ".data.patch.fsyscall_table", 1b-. | 28 | .xdata4 ".data..patch.fsyscall_table", 1b-. |
29 | 29 | ||
30 | .section ".data.patch.brl_fsys_bubble_down", "a" | 30 | .section ".data..patch.brl_fsys_bubble_down", "a" |
31 | .previous | 31 | .previous |
32 | #define BRL_COND_FSYS_BUBBLE_DOWN(pr) \ | 32 | #define BRL_COND_FSYS_BUBBLE_DOWN(pr) \ |
33 | [1:](pr)brl.cond.sptk 0; \ | 33 | [1:](pr)brl.cond.sptk 0; \ |
34 | ;; \ | 34 | ;; \ |
35 | .xdata4 ".data.patch.brl_fsys_bubble_down", 1b-. | 35 | .xdata4 ".data..patch.brl_fsys_bubble_down", 1b-. |
36 | 36 | ||
37 | GLOBAL_ENTRY(__kernel_syscall_via_break) | 37 | GLOBAL_ENTRY(__kernel_syscall_via_break) |
38 | .prologue | 38 | .prologue |
diff --git a/arch/ia64/kernel/gate.lds.S b/arch/ia64/kernel/gate.lds.S index 88c64ed47c36..d32b0855110a 100644 --- a/arch/ia64/kernel/gate.lds.S +++ b/arch/ia64/kernel/gate.lds.S | |||
@@ -33,21 +33,21 @@ SECTIONS | |||
33 | */ | 33 | */ |
34 | . = GATE_ADDR + 0x600; | 34 | . = GATE_ADDR + 0x600; |
35 | 35 | ||
36 | .data.patch : { | 36 | .data..patch : { |
37 | __paravirt_start_gate_mckinley_e9_patchlist = .; | 37 | __paravirt_start_gate_mckinley_e9_patchlist = .; |
38 | *(.data.patch.mckinley_e9) | 38 | *(.data..patch.mckinley_e9) |
39 | __paravirt_end_gate_mckinley_e9_patchlist = .; | 39 | __paravirt_end_gate_mckinley_e9_patchlist = .; |
40 | 40 | ||
41 | __paravirt_start_gate_vtop_patchlist = .; | 41 | __paravirt_start_gate_vtop_patchlist = .; |
42 | *(.data.patch.vtop) | 42 | *(.data..patch.vtop) |
43 | __paravirt_end_gate_vtop_patchlist = .; | 43 | __paravirt_end_gate_vtop_patchlist = .; |
44 | 44 | ||
45 | __paravirt_start_gate_fsyscall_patchlist = .; | 45 | __paravirt_start_gate_fsyscall_patchlist = .; |
46 | *(.data.patch.fsyscall_table) | 46 | *(.data..patch.fsyscall_table) |
47 | __paravirt_end_gate_fsyscall_patchlist = .; | 47 | __paravirt_end_gate_fsyscall_patchlist = .; |
48 | 48 | ||
49 | __paravirt_start_gate_brl_fsys_bubble_down_patchlist = .; | 49 | __paravirt_start_gate_brl_fsys_bubble_down_patchlist = .; |
50 | *(.data.patch.brl_fsys_bubble_down) | 50 | *(.data..patch.brl_fsys_bubble_down) |
51 | __paravirt_end_gate_brl_fsys_bubble_down_patchlist = .; | 51 | __paravirt_end_gate_brl_fsys_bubble_down_patchlist = .; |
52 | } :readable | 52 | } :readable |
53 | 53 | ||
diff --git a/arch/ia64/kernel/init_task.c b/arch/ia64/kernel/init_task.c index e253ab8fcbc8..f9efe9739d3f 100644 --- a/arch/ia64/kernel/init_task.c +++ b/arch/ia64/kernel/init_task.c | |||
@@ -23,7 +23,7 @@ static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | |||
23 | * Initial task structure. | 23 | * Initial task structure. |
24 | * | 24 | * |
25 | * We need to make sure that this is properly aligned due to the way process stacks are | 25 | * We need to make sure that this is properly aligned due to the way process stacks are |
26 | * handled. This is done by having a special ".data.init_task" section... | 26 | * handled. This is done by having a special ".data..init_task" section... |
27 | */ | 27 | */ |
28 | #define init_thread_info init_task_mem.s.thread_info | 28 | #define init_thread_info init_task_mem.s.thread_info |
29 | 29 | ||
diff --git a/arch/ia64/kernel/ivt.S b/arch/ia64/kernel/ivt.S index 179fd122e837..d93e396bf599 100644 --- a/arch/ia64/kernel/ivt.S +++ b/arch/ia64/kernel/ivt.S | |||
@@ -82,7 +82,7 @@ | |||
82 | mov r19=n;; /* prepare to save predicates */ \ | 82 | mov r19=n;; /* prepare to save predicates */ \ |
83 | br.sptk.many dispatch_to_fault_handler | 83 | br.sptk.many dispatch_to_fault_handler |
84 | 84 | ||
85 | .section .text.ivt,"ax" | 85 | .section .text..ivt,"ax" |
86 | 86 | ||
87 | .align 32768 // align on 32KB boundary | 87 | .align 32768 // align on 32KB boundary |
88 | .global ia64_ivt | 88 | .global ia64_ivt |
diff --git a/arch/ia64/kernel/minstate.h b/arch/ia64/kernel/minstate.h index 292e214a3b84..d56753a11636 100644 --- a/arch/ia64/kernel/minstate.h +++ b/arch/ia64/kernel/minstate.h | |||
@@ -16,7 +16,7 @@ | |||
16 | #define ACCOUNT_SYS_ENTER | 16 | #define ACCOUNT_SYS_ENTER |
17 | #endif | 17 | #endif |
18 | 18 | ||
19 | .section ".data.patch.rse", "a" | 19 | .section ".data..patch.rse", "a" |
20 | .previous | 20 | .previous |
21 | 21 | ||
22 | /* | 22 | /* |
@@ -215,7 +215,7 @@ | |||
215 | (pUStk) extr.u r17=r18,3,6; \ | 215 | (pUStk) extr.u r17=r18,3,6; \ |
216 | (pUStk) sub r16=r18,r22; \ | 216 | (pUStk) sub r16=r18,r22; \ |
217 | [1:](pKStk) br.cond.sptk.many 1f; \ | 217 | [1:](pKStk) br.cond.sptk.many 1f; \ |
218 | .xdata4 ".data.patch.rse",1b-. \ | 218 | .xdata4 ".data..patch.rse",1b-. \ |
219 | ;; \ | 219 | ;; \ |
220 | cmp.ge p6,p7 = 33,r17; \ | 220 | cmp.ge p6,p7 = 33,r17; \ |
221 | ;; \ | 221 | ;; \ |
diff --git a/arch/ia64/kernel/paravirtentry.S b/arch/ia64/kernel/paravirtentry.S index 6158560d7f17..92d880c4d3d1 100644 --- a/arch/ia64/kernel/paravirtentry.S +++ b/arch/ia64/kernel/paravirtentry.S | |||
@@ -28,7 +28,7 @@ | |||
28 | #include "entry.h" | 28 | #include "entry.h" |
29 | 29 | ||
30 | #define DATA8(sym, init_value) \ | 30 | #define DATA8(sym, init_value) \ |
31 | .pushsection .data.read_mostly ; \ | 31 | .pushsection .data..read_mostly ; \ |
32 | .align 8 ; \ | 32 | .align 8 ; \ |
33 | .global sym ; \ | 33 | .global sym ; \ |
34 | sym: ; \ | 34 | sym: ; \ |
diff --git a/arch/ia64/kernel/pci-swiotlb.c b/arch/ia64/kernel/pci-swiotlb.c index 3095654f9ab3..d9485d952ed0 100644 --- a/arch/ia64/kernel/pci-swiotlb.c +++ b/arch/ia64/kernel/pci-swiotlb.c | |||
@@ -31,8 +31,6 @@ struct dma_map_ops swiotlb_dma_ops = { | |||
31 | .unmap_sg = swiotlb_unmap_sg_attrs, | 31 | .unmap_sg = swiotlb_unmap_sg_attrs, |
32 | .sync_single_for_cpu = swiotlb_sync_single_for_cpu, | 32 | .sync_single_for_cpu = swiotlb_sync_single_for_cpu, |
33 | .sync_single_for_device = swiotlb_sync_single_for_device, | 33 | .sync_single_for_device = swiotlb_sync_single_for_device, |
34 | .sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu, | ||
35 | .sync_single_range_for_device = swiotlb_sync_single_range_for_device, | ||
36 | .sync_sg_for_cpu = swiotlb_sync_sg_for_cpu, | 34 | .sync_sg_for_cpu = swiotlb_sync_sg_for_cpu, |
37 | .sync_sg_for_device = swiotlb_sync_sg_for_device, | 35 | .sync_sg_for_device = swiotlb_sync_sg_for_device, |
38 | .dma_supported = swiotlb_dma_supported, | 36 | .dma_supported = swiotlb_dma_supported, |
diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c index 0dec7f702448..7c7909f9bc93 100644 --- a/arch/ia64/kernel/ptrace.c +++ b/arch/ia64/kernel/ptrace.c | |||
@@ -638,7 +638,7 @@ ptrace_attach_sync_user_rbs (struct task_struct *child) | |||
638 | */ | 638 | */ |
639 | 639 | ||
640 | read_lock(&tasklist_lock); | 640 | read_lock(&tasklist_lock); |
641 | if (child->signal) { | 641 | if (child->sighand) { |
642 | spin_lock_irq(&child->sighand->siglock); | 642 | spin_lock_irq(&child->sighand->siglock); |
643 | if (child->state == TASK_STOPPED && | 643 | if (child->state == TASK_STOPPED && |
644 | !test_and_set_tsk_thread_flag(child, TIF_RESTORE_RSE)) { | 644 | !test_and_set_tsk_thread_flag(child, TIF_RESTORE_RSE)) { |
@@ -662,7 +662,7 @@ ptrace_attach_sync_user_rbs (struct task_struct *child) | |||
662 | * job control stop, so that SIGCONT can be used to wake it up. | 662 | * job control stop, so that SIGCONT can be used to wake it up. |
663 | */ | 663 | */ |
664 | read_lock(&tasklist_lock); | 664 | read_lock(&tasklist_lock); |
665 | if (child->signal) { | 665 | if (child->sighand) { |
666 | spin_lock_irq(&child->sighand->siglock); | 666 | spin_lock_irq(&child->sighand->siglock); |
667 | if (child->state == TASK_TRACED && | 667 | if (child->state == TASK_TRACED && |
668 | (child->signal->flags & SIGNAL_STOP_STOPPED)) { | 668 | (child->signal->flags & SIGNAL_STOP_STOPPED)) { |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index e5230b2ff2c5..6a1380e90f87 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -390,6 +390,14 @@ smp_callin (void) | |||
390 | 390 | ||
391 | fix_b0_for_bsp(); | 391 | fix_b0_for_bsp(); |
392 | 392 | ||
393 | #ifdef CONFIG_NUMA | ||
394 | /* | ||
395 | * numa_node_id() works after this. | ||
396 | */ | ||
397 | set_numa_node(cpu_to_node_map[cpuid]); | ||
398 | set_numa_mem(local_memory_node(cpu_to_node_map[cpuid])); | ||
399 | #endif | ||
400 | |||
393 | ipi_call_lock_irq(); | 401 | ipi_call_lock_irq(); |
394 | spin_lock(&vector_lock); | 402 | spin_lock(&vector_lock); |
395 | /* Setup the per cpu irq handling data structures */ | 403 | /* Setup the per cpu irq handling data structures */ |
@@ -632,6 +640,9 @@ void __devinit smp_prepare_boot_cpu(void) | |||
632 | { | 640 | { |
633 | cpu_set(smp_processor_id(), cpu_online_map); | 641 | cpu_set(smp_processor_id(), cpu_online_map); |
634 | cpu_set(smp_processor_id(), cpu_callin_map); | 642 | cpu_set(smp_processor_id(), cpu_callin_map); |
643 | #ifdef CONFIG_NUMA | ||
644 | set_numa_node(cpu_to_node_map[smp_processor_id()]); | ||
645 | #endif | ||
635 | per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; | 646 | per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; |
636 | paravirt_post_smp_prepare_boot_cpu(); | 647 | paravirt_post_smp_prepare_boot_cpu(); |
637 | } | 648 | } |
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 1295ba327f6f..e07218a2577f 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S | |||
@@ -8,7 +8,7 @@ | |||
8 | 8 | ||
9 | #define IVT_TEXT \ | 9 | #define IVT_TEXT \ |
10 | VMLINUX_SYMBOL(__start_ivt_text) = .; \ | 10 | VMLINUX_SYMBOL(__start_ivt_text) = .; \ |
11 | *(.text.ivt) \ | 11 | *(.text..ivt) \ |
12 | VMLINUX_SYMBOL(__end_ivt_text) = .; | 12 | VMLINUX_SYMBOL(__end_ivt_text) = .; |
13 | 13 | ||
14 | OUTPUT_FORMAT("elf64-ia64-little") | 14 | OUTPUT_FORMAT("elf64-ia64-little") |
@@ -54,8 +54,8 @@ SECTIONS | |||
54 | .text2 : AT(ADDR(.text2) - LOAD_OFFSET) | 54 | .text2 : AT(ADDR(.text2) - LOAD_OFFSET) |
55 | { *(.text2) } | 55 | { *(.text2) } |
56 | #ifdef CONFIG_SMP | 56 | #ifdef CONFIG_SMP |
57 | .text.lock : AT(ADDR(.text.lock) - LOAD_OFFSET) | 57 | .text..lock : AT(ADDR(.text..lock) - LOAD_OFFSET) |
58 | { *(.text.lock) } | 58 | { *(.text..lock) } |
59 | #endif | 59 | #endif |
60 | _etext = .; | 60 | _etext = .; |
61 | 61 | ||
@@ -75,10 +75,10 @@ SECTIONS | |||
75 | __stop___mca_table = .; | 75 | __stop___mca_table = .; |
76 | } | 76 | } |
77 | 77 | ||
78 | .data.patch.phys_stack_reg : AT(ADDR(.data.patch.phys_stack_reg) - LOAD_OFFSET) | 78 | .data..patch.phys_stack_reg : AT(ADDR(.data..patch.phys_stack_reg) - LOAD_OFFSET) |
79 | { | 79 | { |
80 | __start___phys_stack_reg_patchlist = .; | 80 | __start___phys_stack_reg_patchlist = .; |
81 | *(.data.patch.phys_stack_reg) | 81 | *(.data..patch.phys_stack_reg) |
82 | __end___phys_stack_reg_patchlist = .; | 82 | __end___phys_stack_reg_patchlist = .; |
83 | } | 83 | } |
84 | 84 | ||
@@ -110,24 +110,24 @@ SECTIONS | |||
110 | INIT_TEXT_SECTION(PAGE_SIZE) | 110 | INIT_TEXT_SECTION(PAGE_SIZE) |
111 | INIT_DATA_SECTION(16) | 111 | INIT_DATA_SECTION(16) |
112 | 112 | ||
113 | .data.patch.vtop : AT(ADDR(.data.patch.vtop) - LOAD_OFFSET) | 113 | .data..patch.vtop : AT(ADDR(.data..patch.vtop) - LOAD_OFFSET) |
114 | { | 114 | { |
115 | __start___vtop_patchlist = .; | 115 | __start___vtop_patchlist = .; |
116 | *(.data.patch.vtop) | 116 | *(.data..patch.vtop) |
117 | __end___vtop_patchlist = .; | 117 | __end___vtop_patchlist = .; |
118 | } | 118 | } |
119 | 119 | ||
120 | .data.patch.rse : AT(ADDR(.data.patch.rse) - LOAD_OFFSET) | 120 | .data..patch.rse : AT(ADDR(.data..patch.rse) - LOAD_OFFSET) |
121 | { | 121 | { |
122 | __start___rse_patchlist = .; | 122 | __start___rse_patchlist = .; |
123 | *(.data.patch.rse) | 123 | *(.data..patch.rse) |
124 | __end___rse_patchlist = .; | 124 | __end___rse_patchlist = .; |
125 | } | 125 | } |
126 | 126 | ||
127 | .data.patch.mckinley_e9 : AT(ADDR(.data.patch.mckinley_e9) - LOAD_OFFSET) | 127 | .data..patch.mckinley_e9 : AT(ADDR(.data..patch.mckinley_e9) - LOAD_OFFSET) |
128 | { | 128 | { |
129 | __start___mckinley_e9_bundles = .; | 129 | __start___mckinley_e9_bundles = .; |
130 | *(.data.patch.mckinley_e9) | 130 | *(.data..patch.mckinley_e9) |
131 | __end___mckinley_e9_bundles = .; | 131 | __end___mckinley_e9_bundles = .; |
132 | } | 132 | } |
133 | 133 | ||
@@ -175,17 +175,17 @@ SECTIONS | |||
175 | . = ALIGN(PAGE_SIZE); | 175 | . = ALIGN(PAGE_SIZE); |
176 | __init_end = .; | 176 | __init_end = .; |
177 | 177 | ||
178 | .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) | 178 | .data..page_aligned : AT(ADDR(.data..page_aligned) - LOAD_OFFSET) |
179 | { | 179 | { |
180 | PAGE_ALIGNED_DATA(PAGE_SIZE) | 180 | PAGE_ALIGNED_DATA(PAGE_SIZE) |
181 | . = ALIGN(PAGE_SIZE); | 181 | . = ALIGN(PAGE_SIZE); |
182 | __start_gate_section = .; | 182 | __start_gate_section = .; |
183 | *(.data.gate) | 183 | *(.data..gate) |
184 | __stop_gate_section = .; | 184 | __stop_gate_section = .; |
185 | #ifdef CONFIG_XEN | 185 | #ifdef CONFIG_XEN |
186 | . = ALIGN(PAGE_SIZE); | 186 | . = ALIGN(PAGE_SIZE); |
187 | __xen_start_gate_section = .; | 187 | __xen_start_gate_section = .; |
188 | *(.data.gate.xen) | 188 | *(.data..gate.xen) |
189 | __xen_stop_gate_section = .; | 189 | __xen_stop_gate_section = .; |
190 | #endif | 190 | #endif |
191 | } | 191 | } |
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c index 29afd9a252ff..9b109f25e49c 100644 --- a/arch/ia64/kvm/kvm-ia64.c +++ b/arch/ia64/kvm/kvm-ia64.c | |||
@@ -144,6 +144,7 @@ int kvm_arch_hardware_enable(void *garbage) | |||
144 | VP_INIT_ENV : VP_INIT_ENV_INITALIZE, | 144 | VP_INIT_ENV : VP_INIT_ENV_INITALIZE, |
145 | __pa(kvm_vm_buffer), KVM_VM_BUFFER_BASE, &tmp_base); | 145 | __pa(kvm_vm_buffer), KVM_VM_BUFFER_BASE, &tmp_base); |
146 | if (status != 0) { | 146 | if (status != 0) { |
147 | spin_unlock(&vp_lock); | ||
147 | printk(KERN_WARNING"kvm: Failed to Enable VT Support!!!!\n"); | 148 | printk(KERN_WARNING"kvm: Failed to Enable VT Support!!!!\n"); |
148 | return -EINVAL; | 149 | return -EINVAL; |
149 | } | 150 | } |
@@ -979,11 +980,13 @@ long kvm_arch_vm_ioctl(struct file *filp, | |||
979 | r = -EFAULT; | 980 | r = -EFAULT; |
980 | if (copy_from_user(&irq_event, argp, sizeof irq_event)) | 981 | if (copy_from_user(&irq_event, argp, sizeof irq_event)) |
981 | goto out; | 982 | goto out; |
983 | r = -ENXIO; | ||
982 | if (irqchip_in_kernel(kvm)) { | 984 | if (irqchip_in_kernel(kvm)) { |
983 | __s32 status; | 985 | __s32 status; |
984 | status = kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, | 986 | status = kvm_set_irq(kvm, KVM_USERSPACE_IRQ_SOURCE_ID, |
985 | irq_event.irq, irq_event.level); | 987 | irq_event.irq, irq_event.level); |
986 | if (ioctl == KVM_IRQ_LINE_STATUS) { | 988 | if (ioctl == KVM_IRQ_LINE_STATUS) { |
989 | r = -EFAULT; | ||
987 | irq_event.status = status; | 990 | irq_event.status = status; |
988 | if (copy_to_user(argp, &irq_event, | 991 | if (copy_to_user(argp, &irq_event, |
989 | sizeof irq_event)) | 992 | sizeof irq_event)) |
@@ -1379,7 +1382,7 @@ static void kvm_release_vm_pages(struct kvm *kvm) | |||
1379 | int i, j; | 1382 | int i, j; |
1380 | unsigned long base_gfn; | 1383 | unsigned long base_gfn; |
1381 | 1384 | ||
1382 | slots = rcu_dereference(kvm->memslots); | 1385 | slots = kvm_memslots(kvm); |
1383 | for (i = 0; i < slots->nmemslots; i++) { | 1386 | for (i = 0; i < slots->nmemslots; i++) { |
1384 | memslot = &slots->memslots[i]; | 1387 | memslot = &slots->memslots[i]; |
1385 | base_gfn = memslot->base_gfn; | 1388 | base_gfn = memslot->base_gfn; |
@@ -1535,8 +1538,10 @@ long kvm_arch_vcpu_ioctl(struct file *filp, | |||
1535 | goto out; | 1538 | goto out; |
1536 | 1539 | ||
1537 | if (copy_to_user(user_stack, stack, | 1540 | if (copy_to_user(user_stack, stack, |
1538 | sizeof(struct kvm_ia64_vcpu_stack))) | 1541 | sizeof(struct kvm_ia64_vcpu_stack))) { |
1542 | r = -EFAULT; | ||
1539 | goto out; | 1543 | goto out; |
1544 | } | ||
1540 | 1545 | ||
1541 | break; | 1546 | break; |
1542 | } | 1547 | } |
diff --git a/arch/ia64/kvm/vmm.c b/arch/ia64/kvm/vmm.c index 7a62f75778c5..f0b9cac82414 100644 --- a/arch/ia64/kvm/vmm.c +++ b/arch/ia64/kvm/vmm.c | |||
@@ -51,7 +51,7 @@ static int __init kvm_vmm_init(void) | |||
51 | vmm_fpswa_interface = fpswa_interface; | 51 | vmm_fpswa_interface = fpswa_interface; |
52 | 52 | ||
53 | /*Register vmm data to kvm side*/ | 53 | /*Register vmm data to kvm side*/ |
54 | return kvm_init(&vmm_info, 1024, THIS_MODULE); | 54 | return kvm_init(&vmm_info, 1024, 0, THIS_MODULE); |
55 | } | 55 | } |
56 | 56 | ||
57 | static void __exit kvm_vmm_exit(void) | 57 | static void __exit kvm_vmm_exit(void) |
diff --git a/arch/ia64/kvm/vmm_ivt.S b/arch/ia64/kvm/vmm_ivt.S index 40920c630649..24018484c6e9 100644 --- a/arch/ia64/kvm/vmm_ivt.S +++ b/arch/ia64/kvm/vmm_ivt.S | |||
@@ -104,7 +104,7 @@ GLOBAL_ENTRY(kvm_vmm_panic) | |||
104 | br.call.sptk.many b6=vmm_panic_handler; | 104 | br.call.sptk.many b6=vmm_panic_handler; |
105 | END(kvm_vmm_panic) | 105 | END(kvm_vmm_panic) |
106 | 106 | ||
107 | .section .text.ivt,"ax" | 107 | .section .text..ivt,"ax" |
108 | 108 | ||
109 | .align 32768 // align on 32KB boundary | 109 | .align 32768 // align on 32KB boundary |
110 | .global kvm_ia64_ivt | 110 | .global kvm_ia64_ivt |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 64aff520b899..aa2533ae7e9e 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -335,8 +335,11 @@ pcibios_setup_root_windows(struct pci_bus *bus, struct pci_controller *ctrl) | |||
335 | } | 335 | } |
336 | 336 | ||
337 | struct pci_bus * __devinit | 337 | struct pci_bus * __devinit |
338 | pci_acpi_scan_root(struct acpi_device *device, int domain, int bus) | 338 | pci_acpi_scan_root(struct acpi_pci_root *root) |
339 | { | 339 | { |
340 | struct acpi_device *device = root->device; | ||
341 | int domain = root->segment; | ||
342 | int bus = root->secondary.start; | ||
340 | struct pci_controller *controller; | 343 | struct pci_controller *controller; |
341 | unsigned int windows = 0; | 344 | unsigned int windows = 0; |
342 | struct pci_bus *pbus; | 345 | struct pci_bus *pbus; |
diff --git a/arch/ia64/scripts/unwcheck.py b/arch/ia64/scripts/unwcheck.py index c27849889e19..2bfd941ff7c7 100644 --- a/arch/ia64/scripts/unwcheck.py +++ b/arch/ia64/scripts/unwcheck.py | |||
@@ -1,4 +1,4 @@ | |||
1 | #!/usr/bin/env python | 1 | #!/usr/bin/python |
2 | # | 2 | # |
3 | # Usage: unwcheck.py FILE | 3 | # Usage: unwcheck.py FILE |
4 | # | 4 | # |
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c index f6c1c5fd075d..fa1eceed0d23 100644 --- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c +++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <linux/miscdevice.h> | 30 | #include <linux/miscdevice.h> |
31 | #include <linux/utsname.h> | 31 | #include <linux/utsname.h> |
32 | #include <linux/cpumask.h> | 32 | #include <linux/cpumask.h> |
33 | #include <linux/smp_lock.h> | ||
34 | #include <linux/nodemask.h> | 33 | #include <linux/nodemask.h> |
35 | #include <linux/smp.h> | 34 | #include <linux/smp.h> |
36 | #include <linux/mutex.h> | 35 | #include <linux/mutex.h> |
@@ -682,8 +681,7 @@ static int sn_hwperf_map_err(int hwperf_err) | |||
682 | /* | 681 | /* |
683 | * ioctl for "sn_hwperf" misc device | 682 | * ioctl for "sn_hwperf" misc device |
684 | */ | 683 | */ |
685 | static int | 684 | static long sn_hwperf_ioctl(struct file *fp, u32 op, unsigned long arg) |
686 | sn_hwperf_ioctl(struct inode *in, struct file *fp, u32 op, unsigned long arg) | ||
687 | { | 685 | { |
688 | struct sn_hwperf_ioctl_args a; | 686 | struct sn_hwperf_ioctl_args a; |
689 | struct cpuinfo_ia64 *cdata; | 687 | struct cpuinfo_ia64 *cdata; |
@@ -699,8 +697,6 @@ sn_hwperf_ioctl(struct inode *in, struct file *fp, u32 op, unsigned long arg) | |||
699 | int i; | 697 | int i; |
700 | int j; | 698 | int j; |
701 | 699 | ||
702 | unlock_kernel(); | ||
703 | |||
704 | /* only user requests are allowed here */ | 700 | /* only user requests are allowed here */ |
705 | if ((op & SN_HWPERF_OP_MASK) < 10) { | 701 | if ((op & SN_HWPERF_OP_MASK) < 10) { |
706 | r = -EINVAL; | 702 | r = -EINVAL; |
@@ -859,12 +855,11 @@ sn_hwperf_ioctl(struct inode *in, struct file *fp, u32 op, unsigned long arg) | |||
859 | error: | 855 | error: |
860 | vfree(p); | 856 | vfree(p); |
861 | 857 | ||
862 | lock_kernel(); | ||
863 | return r; | 858 | return r; |
864 | } | 859 | } |
865 | 860 | ||
866 | static const struct file_operations sn_hwperf_fops = { | 861 | static const struct file_operations sn_hwperf_fops = { |
867 | .ioctl = sn_hwperf_ioctl, | 862 | .unlocked_ioctl = sn_hwperf_ioctl, |
868 | }; | 863 | }; |
869 | 864 | ||
870 | static struct miscdevice sn_hwperf_dev = { | 865 | static struct miscdevice sn_hwperf_dev = { |
diff --git a/arch/ia64/xen/gate-data.S b/arch/ia64/xen/gate-data.S index 7d4830afc91d..6f95b6b32a4e 100644 --- a/arch/ia64/xen/gate-data.S +++ b/arch/ia64/xen/gate-data.S | |||
@@ -1,3 +1,3 @@ | |||
1 | .section .data.gate.xen, "aw" | 1 | .section .data..gate.xen, "aw" |
2 | 2 | ||
3 | .incbin "arch/ia64/xen/gate.so" | 3 | .incbin "arch/ia64/xen/gate.so" |
diff --git a/arch/ia64/xen/xensetup.S b/arch/ia64/xen/xensetup.S index aff8346ea193..b820ed02ab9f 100644 --- a/arch/ia64/xen/xensetup.S +++ b/arch/ia64/xen/xensetup.S | |||
@@ -14,7 +14,7 @@ | |||
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <xen/interface/elfnote.h> | 15 | #include <xen/interface/elfnote.h> |
16 | 16 | ||
17 | .section .data.read_mostly | 17 | .section .data..read_mostly |
18 | .align 8 | 18 | .align 8 |
19 | .global xen_domain_type | 19 | .global xen_domain_type |
20 | xen_domain_type: | 20 | xen_domain_type: |