--- include/linux/percpu.h | 9 +-------- net/iucv/iucv.c | 9 ++++----- 2 files changed, 5 insertions(+), 13 deletions(-) Index: linux-2.6/include/linux/percpu.h =================================================================== --- linux-2.6.orig/include/linux/percpu.h 2007-10-31 08:51:03.000000000 -0700 +++ linux-2.6/include/linux/percpu.h 2007-10-31 08:52:52.000000000 -0700 @@ -46,7 +46,7 @@ (__typeof__(ptr))(p + q); \ }) -extern void *__percpu_alloc_mask(size_t size, gfp_t gfp, cpumask_t *mask); +extern void *__alloc_percpu(size_t size); extern void percpu_free(void *__pdata); #else /* CONFIG_SMP */ @@ -65,15 +65,8 @@ static inline void percpu_free(void *__p #endif /* CONFIG_SMP */ -#define percpu_alloc_mask(size, gfp, mask) \ - __percpu_alloc_mask((size), (gfp), &(mask)) - -#define percpu_alloc(size, gfp) percpu_alloc_mask((size), (gfp), cpu_online_map) - /* (legacy) interface for use without CPU hotplug handling */ -#define __alloc_percpu(size) percpu_alloc_mask((size), GFP_KERNEL, \ - cpu_possible_map) #define alloc_percpu(type) (type *)__alloc_percpu(sizeof(type)) #define free_percpu(ptr) percpu_free((ptr)) #define per_cpu_ptr(ptr, cpu) percpu_ptr((ptr), (cpu)) Index: linux-2.6/net/iucv/iucv.c =================================================================== --- linux-2.6.orig/net/iucv/iucv.c 2007-10-31 08:53:43.000000000 -0700 +++ linux-2.6/net/iucv/iucv.c 2007-10-31 09:07:20.000000000 -0700 @@ -1598,16 +1598,15 @@ static int __init iucv_init(void) rc = PTR_ERR(iucv_root); goto out_bus; } - /* Note: GFP_DMA used to get memory below 2G */ - iucv_irq_data = percpu_alloc(sizeof(struct iucv_irq_data), - GFP_KERNEL|GFP_DMA); + /* Note: GFP_DMA used to get memory below 2G. + * The percpu data is below 2G right ? So this should work too -cl */ + iucv_irq_data = percpu_alloc(struct iucv_irq_data); if (!iucv_irq_data) { rc = -ENOMEM; goto out_root; } /* Allocate parameter blocks. */ - iucv_param = percpu_alloc(sizeof(union iucv_param), - GFP_KERNEL|GFP_DMA); + iucv_param = percpu_alloc(union iucv_param); if (!iucv_param) { rc = -ENOMEM; goto out_extint;