diff options
26 files changed, 84 insertions, 53 deletions
diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S index 449e76f118d3..6f4f0378e708 100644 --- a/arch/alpha/kernel/vmlinux.lds.S +++ b/arch/alpha/kernel/vmlinux.lds.S | |||
| @@ -69,10 +69,7 @@ SECTIONS | |||
| 69 | . = ALIGN(8); | 69 | . = ALIGN(8); |
| 70 | SECURITY_INIT | 70 | SECURITY_INIT |
| 71 | 71 | ||
| 72 | . = ALIGN(8192); | 72 | PERCPU(8192) |
| 73 | __per_cpu_start = .; | ||
| 74 | .data.percpu : { *(.data.percpu) } | ||
| 75 | __per_cpu_end = .; | ||
| 76 | 73 | ||
| 77 | . = ALIGN(2*8192); | 74 | . = ALIGN(2*8192); |
| 78 | __init_end = .; | 75 | __init_end = .; |
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index 2b7a8f5d8cf2..5ff5406666b4 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S | |||
| @@ -66,6 +66,7 @@ SECTIONS | |||
| 66 | . = ALIGN(4096); | 66 | . = ALIGN(4096); |
| 67 | __per_cpu_start = .; | 67 | __per_cpu_start = .; |
| 68 | *(.data.percpu) | 68 | *(.data.percpu) |
| 69 | *(.data.percpu.shared_aligned) | ||
| 69 | __per_cpu_end = .; | 70 | __per_cpu_end = .; |
| 70 | #ifndef CONFIG_XIP_KERNEL | 71 | #ifndef CONFIG_XIP_KERNEL |
| 71 | __init_begin = _stext; | 72 | __init_begin = _stext; |
diff --git a/arch/cris/arch-v32/vmlinux.lds.S b/arch/cris/arch-v32/vmlinux.lds.S index dfa25e1542b9..651a77f2ccc4 100644 --- a/arch/cris/arch-v32/vmlinux.lds.S +++ b/arch/cris/arch-v32/vmlinux.lds.S | |||
| @@ -91,10 +91,7 @@ SECTIONS | |||
| 91 | } | 91 | } |
| 92 | SECURITY_INIT | 92 | SECURITY_INIT |
| 93 | 93 | ||
| 94 | . = ALIGN (8192); | 94 | PERCPU(8192) |
| 95 | __per_cpu_start = .; | ||
| 96 | .data.percpu : { *(.data.percpu) } | ||
| 97 | __per_cpu_end = .; | ||
| 98 | 95 | ||
| 99 | #ifdef CONFIG_BLK_DEV_INITRD | 96 | #ifdef CONFIG_BLK_DEV_INITRD |
| 100 | .init.ramfs : { | 97 | .init.ramfs : { |
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S index 481dc1374640..3b71e0c86399 100644 --- a/arch/frv/kernel/vmlinux.lds.S +++ b/arch/frv/kernel/vmlinux.lds.S | |||
| @@ -57,10 +57,7 @@ SECTIONS | |||
| 57 | __alt_instructions_end = .; | 57 | __alt_instructions_end = .; |
| 58 | .altinstr_replacement : { *(.altinstr_replacement) } | 58 | .altinstr_replacement : { *(.altinstr_replacement) } |
| 59 | 59 | ||
| 60 | . = ALIGN(4096); | 60 | PERCPU(4096) |
| 61 | __per_cpu_start = .; | ||
| 62 | .data.percpu : { *(.data.percpu) } | ||
| 63 | __per_cpu_end = .; | ||
| 64 | 61 | ||
| 65 | #ifdef CONFIG_BLK_DEV_INITRD | 62 | #ifdef CONFIG_BLK_DEV_INITRD |
| 66 | . = ALIGN(4096); | 63 | . = ALIGN(4096); |
diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S index 00f1bc47d3a2..4dc44b8007cc 100644 --- a/arch/i386/kernel/vmlinux.lds.S +++ b/arch/i386/kernel/vmlinux.lds.S | |||
| @@ -181,6 +181,7 @@ SECTIONS | |||
| 181 | .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { | 181 | .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { |
| 182 | __per_cpu_start = .; | 182 | __per_cpu_start = .; |
| 183 | *(.data.percpu) | 183 | *(.data.percpu) |
| 184 | *(.data.percpu.shared_aligned) | ||
| 184 | __per_cpu_end = .; | 185 | __per_cpu_end = .; |
| 185 | } | 186 | } |
| 186 | . = ALIGN(4096); | 187 | . = ALIGN(4096); |
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 5a65965c8b53..860f251d2fc2 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S | |||
| @@ -206,6 +206,7 @@ SECTIONS | |||
| 206 | { | 206 | { |
| 207 | __per_cpu_start = .; | 207 | __per_cpu_start = .; |
| 208 | *(.data.percpu) | 208 | *(.data.percpu) |
| 209 | *(.data.percpu.shared_aligned) | ||
| 209 | __per_cpu_end = .; | 210 | __per_cpu_end = .; |
| 210 | } | 211 | } |
| 211 | . = __phys_per_cpu_start + PERCPU_PAGE_SIZE; /* ensure percpu data fits | 212 | . = __phys_per_cpu_start + PERCPU_PAGE_SIZE; /* ensure percpu data fits |
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S index 4e2d5b9f0a9a..942a8c7a4417 100644 --- a/arch/m32r/kernel/vmlinux.lds.S +++ b/arch/m32r/kernel/vmlinux.lds.S | |||
| @@ -110,10 +110,7 @@ SECTIONS | |||
| 110 | __initramfs_end = .; | 110 | __initramfs_end = .; |
| 111 | #endif | 111 | #endif |
| 112 | 112 | ||
| 113 | . = ALIGN(4096); | 113 | PERCPU(4096) |
| 114 | __per_cpu_start = .; | ||
| 115 | .data.percpu : { *(.data.percpu) } | ||
| 116 | __per_cpu_end = .; | ||
| 117 | . = ALIGN(4096); | 114 | . = ALIGN(4096); |
| 118 | __init_end = .; | 115 | __init_end = .; |
| 119 | /* freed after init ends here */ | 116 | /* freed after init ends here */ |
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index 9b9992cd562a..bc9bae2a73f4 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S | |||
| @@ -119,10 +119,7 @@ SECTIONS | |||
| 119 | .init.ramfs : { *(.init.ramfs) } | 119 | .init.ramfs : { *(.init.ramfs) } |
| 120 | __initramfs_end = .; | 120 | __initramfs_end = .; |
| 121 | #endif | 121 | #endif |
| 122 | . = ALIGN(_PAGE_SIZE); | 122 | PERCPU(_PAGE_SIZE) |
| 123 | __per_cpu_start = .; | ||
| 124 | .data.percpu : { *(.data.percpu) } | ||
| 125 | __per_cpu_end = .; | ||
| 126 | . = ALIGN(_PAGE_SIZE); | 123 | . = ALIGN(_PAGE_SIZE); |
| 127 | __init_end = .; | 124 | __init_end = .; |
| 128 | /* freed after init ends here */ | 125 | /* freed after init ends here */ |
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index 4d96ba4b9849..d4e6a93c8d9a 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S | |||
| @@ -181,10 +181,9 @@ SECTIONS | |||
| 181 | .init.ramfs : { *(.init.ramfs) } | 181 | .init.ramfs : { *(.init.ramfs) } |
| 182 | __initramfs_end = .; | 182 | __initramfs_end = .; |
| 183 | #endif | 183 | #endif |
| 184 | . = ALIGN(ASM_PAGE_SIZE); | 184 | |
| 185 | __per_cpu_start = .; | 185 | PERCPU(ASM_PAGE_SIZE) |
| 186 | .data.percpu : { *(.data.percpu) } | 186 | |
| 187 | __per_cpu_end = .; | ||
| 188 | . = ALIGN(ASM_PAGE_SIZE); | 187 | . = ALIGN(ASM_PAGE_SIZE); |
| 189 | __init_end = .; | 188 | __init_end = .; |
| 190 | /* freed after init ends here */ | 189 | /* freed after init ends here */ |
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index ae4acd84143d..39fda6e6aa47 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S | |||
| @@ -144,6 +144,7 @@ SECTIONS | |||
| 144 | .data.percpu : { | 144 | .data.percpu : { |
| 145 | __per_cpu_start = .; | 145 | __per_cpu_start = .; |
| 146 | *(.data.percpu) | 146 | *(.data.percpu) |
| 147 | *(.data.percpu.shared_aligned) | ||
| 147 | __per_cpu_end = .; | 148 | __per_cpu_end = .; |
| 148 | } | 149 | } |
| 149 | 150 | ||
diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S index 19db8746ff14..c0aac3ff9e91 100644 --- a/arch/ppc/kernel/vmlinux.lds.S +++ b/arch/ppc/kernel/vmlinux.lds.S | |||
| @@ -130,10 +130,7 @@ SECTIONS | |||
| 130 | __ftr_fixup : { *(__ftr_fixup) } | 130 | __ftr_fixup : { *(__ftr_fixup) } |
| 131 | __stop___ftr_fixup = .; | 131 | __stop___ftr_fixup = .; |
| 132 | 132 | ||
| 133 | . = ALIGN(4096); | 133 | PERCPU(4096) |
| 134 | __per_cpu_start = .; | ||
| 135 | .data.percpu : { *(.data.percpu) } | ||
| 136 | __per_cpu_end = .; | ||
| 137 | 134 | ||
| 138 | |||
