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] Put the space for cpu0 per-cpu area into .data section

+15 -9
+3
arch/ia64/include/asm/sections.h
··· 11 11 #include <asm-generic/sections.h> 12 12 13 13 extern char __per_cpu_start[], __per_cpu_end[], __phys_per_cpu_start[]; 14 + #ifdef CONFIG_SMP 15 + extern char __cpu0_per_cpu[]; 16 + #endif 14 17 extern char __start___vtop_patchlist[], __end___vtop_patchlist[]; 15 18 extern char __start___rse_patchlist[], __end___rse_patchlist[]; 16 19 extern char __start___mckinley_e9_bundles[], __end___mckinley_e9_bundles[];
+5 -4
arch/ia64/kernel/head.S
··· 367 367 ;; 368 368 #else 369 369 (isAP) br.few 2f 370 - mov r20=r19 371 - sub r19=r19,r18 370 + movl r20=__cpu0_per_cpu 372 371 ;; 373 372 shr.u r18=r18,3 374 373 1: 375 - ld8 r21=[r20],8;; 376 - st8[r19]=r21,8 374 + ld8 r21=[r19],8;; 375 + st8[r20]=r21,8 377 376 adds r18=-1,r18;; 378 377 cmp4.lt p7,p6=0,r18 379 378 (p7) br.cond.dptk.few 1b 379 + mov r19=r20 380 + ;; 380 381 2: 381 382 #endif 382 383 tpa r19=r19
+5 -3
arch/ia64/kernel/vmlinux.lds.S
··· 215 215 /* Per-cpu data: */ 216 216 percpu : { } :percpu 217 217 . = ALIGN(PERCPU_PAGE_SIZE); 218 - #ifdef CONFIG_SMP 219 - . = . + PERCPU_PAGE_SIZE; /* cpu0 per-cpu space */ 220 - #endif 221 218 __phys_per_cpu_start = .; 222 219 .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - LOAD_OFFSET) 223 220 { ··· 230 233 data : { } :data 231 234 .data : AT(ADDR(.data) - LOAD_OFFSET) 232 235 { 236 + #ifdef CONFIG_SMP 237 + . = ALIGN(PERCPU_PAGE_SIZE); 238 + __cpu0_per_cpu = .; 239 + . = . + PERCPU_PAGE_SIZE; /* cpu0 per-cpu space */ 240 + #endif 233 241 DATA_DATA 234 242 *(.data1) 235 243 *(.gnu.linkonce.d*)
+1 -1
arch/ia64/mm/contig.c
··· 163 163 * get_zeroed_page(). 164 164 */ 165 165 if (first_time) { 166 - void *cpu0_data = __phys_per_cpu_start - PERCPU_PAGE_SIZE; 166 + void *cpu0_data = __cpu0_per_cpu; 167 167 168 168 first_time=0; 169 169
+1 -1
arch/ia64/mm/discontig.c
··· 144 144 145 145 for_each_possible_early_cpu(cpu) { 146 146 if (cpu == 0) { 147 - void *cpu0_data = __phys_per_cpu_start - PERCPU_PAGE_SIZE; 147 + void *cpu0_data = __cpu0_per_cpu; 148 148 __per_cpu_offset[cpu] = (char*)cpu0_data - 149 149 __per_cpu_start; 150 150 } else if (node == node_cpuid[cpu].nid) {