--- arch/x86/Kconfig | 2 +- arch/x86/kernel/vmlinux_32.lds.S | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) Index: linux-2.6/arch/x86/kernel/vmlinux_32.lds.S =================================================================== --- linux-2.6.orig/arch/x86/kernel/vmlinux_32.lds.S 2007-11-27 19:01:12.296963453 -0800 +++ linux-2.6/arch/x86/kernel/vmlinux_32.lds.S 2007-11-27 19:49:07.893462881 -0800 @@ -29,6 +29,7 @@ jiffies = jiffies_64; PHDRS { text PT_LOAD FLAGS(5); /* R_E */ + percpu PT_LOAD FLAGS(4); /* R__ */ data PT_LOAD FLAGS(7); /* RWE */ note PT_NOTE FLAGS(0); /* ___ */ } @@ -179,13 +180,7 @@ SECTIONS __initramfs_end = .; } #endif - . = ALIGN(4096); - .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { - __per_cpu_start = .; - *(.data.percpu) - *(.data.percpu.shared_aligned) - __per_cpu_end = .; - } + PERCPU(4096) . = ALIGN(4096); /* freed after init ends here */ Index: linux-2.6/arch/x86/Kconfig =================================================================== --- linux-2.6.orig/arch/x86/Kconfig 2007-11-27 19:48:34.900212634 -0800 +++ linux-2.6/arch/x86/Kconfig 2007-11-27 19:49:18.916962686 -0800 @@ -117,7 +117,7 @@ config ARCH_SETS_UP_PER_CPU_AREA config PERCPU_ZERO_BASED bool - depends on X86_64 && SMP + depends on SMP default y config ZONE_DMA32