Subject: Re: [PATCH] fsldma: fix missing header include

From: Andrew Morton <[email-masked]>
Date: Fri, 3 Sep 2010 16:40:33 -0700

On Thu, 2 Sep 2010 12:47:52 -0700
"Ira W. Snyder" <[email-masked]> wrote:

> The slab.h header is required to use the kmalloc() family of functions.
> Due to recent kernel changes, this header must be directly included by
> code that calls into the memory allocator.
> 
> Signed-off-by: Ira W. Snyder <[email-masked]>
> ---
> 
> Without this patch, any code which includes this header fails to build.
> 
>  arch/powerpc/include/asm/fsldma.h |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/fsldma.h b/arch/powerpc/include/asm/fsldma.h
> index a67aeed..debc5ed 100644
> --- a/arch/powerpc/include/asm/fsldma.h
> +++ b/arch/powerpc/include/asm/fsldma.h
> @@ -11,6 +11,7 @@
>  #ifndef __ARCH_POWERPC_ASM_FSLDMA_H__
>  #define __ARCH_POWERPC_ASM_FSLDMA_H__
>  
> +#include <linux/slab.h>
>  #include <linux/dmaengine.h>
>  

It also needs list.h, but appears to get it via sheer luck.

The functions in that header simply shouldn't have been inlined.

It's peculiar that fsl_dma_slave_append() hardwires GFP_ATOMIC, whereas
fsl_dma_slave_alloc() takes a gfp_t.