--- include/linux/percpu.h | 4 +--- mm/allocpercpu.c | 8 ++++---- 2 files changed, 5 insertions(+), 7 deletions(-) Index: linux-2.6/include/linux/percpu.h =================================================================== --- linux-2.6.orig/include/linux/percpu.h 2007-10-30 22:02:50.000000000 -0700 +++ linux-2.6/include/linux/percpu.h 2007-10-30 22:03:32.000000000 -0700 @@ -33,9 +33,7 @@ #ifdef CONFIG_SMP -typedef unsigned long long per_cpu_unit; - -DECLARE_PER_CPU(per_cpu_unit, cpu_area)[]; +DECLARE_PER_CPU(int, cpu_area)[]; #define __percpu_disguise(pdata) (struct percpu_data *)~(unsigned long)(pdata) /* Index: linux-2.6/mm/allocpercpu.c =================================================================== --- linux-2.6.orig/mm/allocpercpu.c 2007-10-30 22:03:37.000000000 -0700 +++ linux-2.6/mm/allocpercpu.c 2007-10-30 22:04:14.000000000 -0700 @@ -17,12 +17,12 @@ static DEFINE_SPINLOCK(cpu_area_lock); static u8 cpu_alloc_map[MAXIMUM_UNITS_PER_CPU] = { 1, }; -DEFINE_PER_CPU(per_cpu_unit, cpu_area)[MAXIMUM_UNITS_PER_CPU]; +DEFINE_PER_CPU(int, cpu_area)[MAXIMUM_UNITS_PER_CPU]; EXPORT_PER_CPU_SYMBOL(cpu_area); static inline int size_to_units(unsigned long size) { - return (size + sizeof(per_cpu_unit) - 1) / sizeof(per_cpu_unit); + return (size + sizeof(int) - 1) / sizeof(int); } static inline void set_map(int start, int length) @@ -69,7 +69,7 @@ static inline void *cpu_alloc(unsigned l } while (1); set_map(start, units); - __count_vm_events(ALLOC_PERCPU, units * sizeof(per_cpu_unit)); + __count_vm_events(ALLOC_PERCPU, units * sizeof(int)); spin_unlock(&cpu_area_lock); // printk("cpu_alloc(%ld) = %ld free=%ld\n", size, start, free); return (void *)start; @@ -85,7 +85,7 @@ static inline void cpu_free(void *pcpu) spin_lock(&cpu_area_lock); units = clear_map(start); - __count_vm_events(ALLOC_PERCPU, -units * sizeof(per_cpu_unit)); + __count_vm_events(ALLOC_PERCPU, -units * sizeof(int)); spin_unlock(&cpu_area_lock); // printk("cpu_free(%ld) free=%d\n", start, units); }