From: Benoit Boissinot On s390, Ben's check-kmalloc-args-at-compile-time patch triggers this: arch/s390/mm/built-in.o(.text+0x152c): In function `query_segment_type': extmem.c: undefined reference to `__your_kmalloc_flags_are_not_valid' arch/s390/mm/built-in.o(.text+0x19ec): In function `segment_load': : undefined reference to `__your_kmalloc_flags_are_not_valid' Because we're using bare GFP_DMA. But GFP_DMA is supposed to be ORed with GFP_KERNEL (or whatever). Signed-off-by: Benoit Boissinot Signed-off-by: Andrew Morton --- arch/s390/mm/extmem.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff -puN arch/s390/mm/extmem.c~s390-fix-invalid-kmalloc-flags arch/s390/mm/extmem.c --- devel/arch/s390/mm/extmem.c~s390-fix-invalid-kmalloc-flags 2005-08-06 14:54:56.000000000 -0700 +++ devel-akpm/arch/s390/mm/extmem.c 2005-08-06 14:54:56.000000000 -0700 @@ -172,8 +172,8 @@ dcss_diag_translate_rc (int vm_rc) { static int query_segment_type (struct dcss_segment *seg) { - struct qin64 *qin = kmalloc (sizeof(struct qin64), GFP_DMA); - struct qout64 *qout = kmalloc (sizeof(struct qout64), GFP_DMA); + struct qin64 *qin = kmalloc (sizeof(struct qin64), GFP_DMA|GFP_KERNEL); + struct qout64 *qout = kmalloc (sizeof(struct qout64), GFP_DMA|GFP_KERNEL); int diag_cc, rc, i; unsigned long dummy, vmrc; @@ -332,7 +332,7 @@ static int __segment_load (char *name, int do_nonshared, unsigned long *addr, unsigned long *end) { struct dcss_segment *seg = kmalloc(sizeof(struct dcss_segment), - GFP_DMA); + GFP_DMA|GFP_KERNEL); int dcss_command, rc, diag_cc; if (seg == NULL) { _