Patchwork fsldma: fix missing header include

login
register
mail settings
Submitter Ira Snyder
Date Sept. 2, 2010, 7:47 p.m.
Message ID <20100902194752.GA24861@ovro.caltech.edu>
Download mbox | patch
Permalink /patch/63531/
State Superseded
Headers show

Comments

Ira Snyder - Sept. 2, 2010, 7:47 p.m.
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 <iws@ovro.caltech.edu>
---

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(-)
Andrew Morton - Sept. 3, 2010, 11:40 p.m.
On Thu, 2 Sep 2010 12:47:52 -0700
"Ira W. Snyder" <iws@ovro.caltech.edu> 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 <iws@ovro.caltech.edu>
> ---
> 
> 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.
Ira Snyder - Sept. 4, 2010, 12:47 a.m.
On Fri, Sep 03, 2010 at 04:40:33PM -0700, Andrew Morton wrote:
> On Thu, 2 Sep 2010 12:47:52 -0700
> "Ira W. Snyder" <iws@ovro.caltech.edu> 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 <iws@ovro.caltech.edu>
> > ---
> > 
> > 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.
> 

Would you like a patch that moves the functions to drivers/dma/fsldma.c
and EXPORT_SYMBOL_GPL()'s them? I don't know the consequences to doing
so, which is why I avoided it when I wrote
arch/powerpc/include/asm/fsldma.h.

Thanks,
Ira
Andrew Morton - Sept. 4, 2010, 12:58 a.m.
On Fri, 3 Sep 2010 17:47:24 -0700 "Ira W. Snyder" <iws@ovro.caltech.edu> wrote:

> On Fri, Sep 03, 2010 at 04:40:33PM -0700, Andrew Morton wrote:
> > On Thu, 2 Sep 2010 12:47:52 -0700
> > "Ira W. Snyder" <iws@ovro.caltech.edu> 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 <iws@ovro.caltech.edu>
> > > ---
> > > 
> > > 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.
> > 
> 
> Would you like a patch that moves the functions to drivers/dma/fsldma.c
> and EXPORT_SYMBOL_GPL()'s them?

Sure, thanks.  Then I can harrass Dan with it ;)

> I don't know the consequences to doing
> so, which is why I avoided it when I wrote
> arch/powerpc/include/asm/fsldma.h.

The minimal fix for the bug was appropriate.

Patch

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>
 
 /*