All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH -mm] uml: disable CONFIG_HAS_DMA
@ 2010-09-04  9:17 FUJITA Tomonori
  2010-09-04 10:13 ` Sam Ravnborg
  0 siblings, 1 reply; 5+ messages in thread
From: FUJITA Tomonori @ 2010-09-04  9:17 UTC (permalink / raw)
  To: akpm; +Cc: miklos, jdike, linux-kernel

I think that it's better to detect DMA misuse at build time rather
than calling BUG_ON. Architectures that can't do DMA need to disable
CONFIG_HAS_DMA.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
---
 arch/um/Kconfig.um                |    3 +
 arch/um/defconfig                 |    1 -
 arch/um/include/asm/dma-mapping.h |  112 -------------------------------------
 3 files changed, 3 insertions(+), 113 deletions(-)
 delete mode 100644 arch/um/include/asm/dma-mapping.h

diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um
index ec2b8da..3de40b8 100644
--- a/arch/um/Kconfig.um
+++ b/arch/um/Kconfig.um
@@ -147,3 +147,6 @@ config KERNEL_STACK_ORDER
 	  This option determines the size of UML kernel stacks.  They will
 	  be 1 << order pages.  The default is OK unless you're running Valgrind
 	  on UML, in which case, set this to 3.
+
+config HAS_DMA
+       def_bool n
diff --git a/arch/um/defconfig b/arch/um/defconfig
index 6bd456f..564f3de 100644
--- a/arch/um/defconfig
+++ b/arch/um/defconfig
@@ -566,7 +566,6 @@ CONFIG_CRC32=m
 # CONFIG_CRC7 is not set
 # CONFIG_LIBCRC32C is not set
 CONFIG_PLIST=y
-CONFIG_HAS_DMA=y
 
 #
 # SCSI device support
diff --git a/arch/um/include/asm/dma-mapping.h b/arch/um/include/asm/dma-mapping.h
deleted file mode 100644
index 1f469e8..0000000
--- a/arch/um/include/asm/dma-mapping.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef _ASM_DMA_MAPPING_H
-#define _ASM_DMA_MAPPING_H
-
-#include <asm/scatterlist.h>
-
-static inline int
-dma_supported(struct device *dev, u64 mask)
-{
-	BUG();
-	return(0);
-}
-
-static inline int
-dma_set_mask(struct device *dev, u64 dma_mask)
-{
-	BUG();
-	return(0);
-}
-
-static inline void *
-dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
-		   gfp_t flag)
-{
-	BUG();
-	return((void *) 0);
-}
-
-static inline void
-dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
-		  dma_addr_t dma_handle)
-{
-	BUG();
-}
-
-static inline dma_addr_t
-dma_map_single(struct device *dev, void *cpu_addr, size_t size,
-	       enum dma_data_direction direction)
-{
-	BUG();
-	return(0);
-}
-
-static inline void
-dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
-		 enum dma_data_direction direction)
-{
-	BUG();
-}
-
-static inline dma_addr_t
-dma_map_page(struct device *dev, struct page *page,
-	     unsigned long offset, size_t size,
-	     enum dma_data_direction direction)
-{
-	BUG();
-	return(0);
-}
-
-static inline void
-dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
-	       enum dma_data_direction direction)
-{
-	BUG();
-}
-
-static inline int
-dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
-	   enum dma_data_direction direction)
-{
-	BUG();
-	return(0);
-}
-
-static inline void
-dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
-	     enum dma_data_direction direction)
-{
-	BUG();
-}
-
-static inline void
-dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size,
-		enum dma_data_direction direction)
-{
-	BUG();
-}
-
-static inline void
-dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
-	    enum dma_data_direction direction)
-{
-	BUG();
-}
-
-#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
-#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
-
-static inline void
-dma_cache_sync(struct device *dev, void *vaddr, size_t size,
-	       enum dma_data_direction direction)
-{
-	BUG();
-}
-
-static inline int
-dma_mapping_error(struct device *dev, dma_addr_t dma_handle)
-{
-	BUG();
-	return 0;
-}
-
-#endif
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH -mm] uml: disable CONFIG_HAS_DMA
  2010-09-04  9:17 [PATCH -mm] uml: disable CONFIG_HAS_DMA FUJITA Tomonori
@ 2010-09-04 10:13 ` Sam Ravnborg
  2010-09-04 10:31   ` FUJITA Tomonori
  0 siblings, 1 reply; 5+ messages in thread
From: Sam Ravnborg @ 2010-09-04 10:13 UTC (permalink / raw)
  To: FUJITA Tomonori; +Cc: akpm, miklos, jdike, linux-kernel

On Sat, Sep 04, 2010 at 06:17:56PM +0900, FUJITA Tomonori wrote:
> I think that it's better to detect DMA misuse at build time rather
> than calling BUG_ON. Architectures that can't do DMA need to disable
> CONFIG_HAS_DMA.
> 
> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
> ---
>  arch/um/Kconfig.um                |    3 +
>  arch/um/defconfig                 |    1 -
>  arch/um/include/asm/dma-mapping.h |  112 -------------------------------------
>  3 files changed, 3 insertions(+), 113 deletions(-)
>  delete mode 100644 arch/um/include/asm/dma-mapping.h
> 
> diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um
> index ec2b8da..3de40b8 100644
> --- a/arch/um/Kconfig.um
> +++ b/arch/um/Kconfig.um
> @@ -147,3 +147,6 @@ config KERNEL_STACK_ORDER
>  	  This option determines the size of UML kernel stacks.  They will
>  	  be 1 << order pages.  The default is OK unless you're running Valgrind
>  	  on UML, in which case, set this to 3.
> +
> +config HAS_DMA
> +       def_bool n

Other archs define NO_DMA to say they do not have DMA.
We should do it the same way for um.


	Sam


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH -mm] uml: disable CONFIG_HAS_DMA
  2010-09-04 10:13 ` Sam Ravnborg
@ 2010-09-04 10:31   ` FUJITA Tomonori
  2010-09-04 11:18     ` Sam Ravnborg
  0 siblings, 1 reply; 5+ messages in thread
From: FUJITA Tomonori @ 2010-09-04 10:31 UTC (permalink / raw)
  To: sam; +Cc: fujita.tomonori, akpm, miklos, jdike, linux-kernel

On Sat, 4 Sep 2010 12:13:13 +0200
Sam Ravnborg <sam@ravnborg.org> wrote:

> On Sat, Sep 04, 2010 at 06:17:56PM +0900, FUJITA Tomonori wrote:
> > I think that it's better to detect DMA misuse at build time rather
> > than calling BUG_ON. Architectures that can't do DMA need to disable
> > CONFIG_HAS_DMA.
> > 
> > Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
> > ---
> >  arch/um/Kconfig.um                |    3 +
> >  arch/um/defconfig                 |    1 -
> >  arch/um/include/asm/dma-mapping.h |  112 -------------------------------------
> >  3 files changed, 3 insertions(+), 113 deletions(-)
> >  delete mode 100644 arch/um/include/asm/dma-mapping.h
> > 
> > diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um
> > index ec2b8da..3de40b8 100644
> > --- a/arch/um/Kconfig.um
> > +++ b/arch/um/Kconfig.um
> > @@ -147,3 +147,6 @@ config KERNEL_STACK_ORDER
> >  	  This option determines the size of UML kernel stacks.  They will
> >  	  be 1 << order pages.  The default is OK unless you're running Valgrind
> >  	  on UML, in which case, set this to 3.
> > +
> > +config HAS_DMA
> > +       def_bool n
> 
> Other archs define NO_DMA to say they do not have DMA.
> We should do it the same way for um.

Defining NO_DMA affects any code? In other words, we can kill NO_DMA
definition?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH -mm] uml: disable CONFIG_HAS_DMA
  2010-09-04 10:31   ` FUJITA Tomonori
@ 2010-09-04 11:18     ` Sam Ravnborg
  2010-09-06 10:55       ` FUJITA Tomonori
  0 siblings, 1 reply; 5+ messages in thread
From: Sam Ravnborg @ 2010-09-04 11:18 UTC (permalink / raw)
  To: FUJITA Tomonori; +Cc: akpm, miklos, jdike, linux-kernel

On Sat, Sep 04, 2010 at 07:31:26PM +0900, FUJITA Tomonori wrote:
> On Sat, 4 Sep 2010 12:13:13 +0200
> Sam Ravnborg <sam@ravnborg.org> wrote:
> 
> > On Sat, Sep 04, 2010 at 06:17:56PM +0900, FUJITA Tomonori wrote:
> > > I think that it's better to detect DMA misuse at build time rather
> > > than calling BUG_ON. Architectures that can't do DMA need to disable
> > > CONFIG_HAS_DMA.
> > > 
> > > Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
> > > ---
> > >  arch/um/Kconfig.um                |    3 +
> > >  arch/um/defconfig                 |    1 -
> > >  arch/um/include/asm/dma-mapping.h |  112 -------------------------------------
> > >  3 files changed, 3 insertions(+), 113 deletions(-)
> > >  delete mode 100644 arch/um/include/asm/dma-mapping.h
> > > 
> > > diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um
> > > index ec2b8da..3de40b8 100644
> > > --- a/arch/um/Kconfig.um
> > > +++ b/arch/um/Kconfig.um
> > > @@ -147,3 +147,6 @@ config KERNEL_STACK_ORDER
> > >  	  This option determines the size of UML kernel stacks.  They will
> > >  	  be 1 << order pages.  The default is OK unless you're running Valgrind
> > >  	  on UML, in which case, set this to 3.
> > > +
> > > +config HAS_DMA
> > > +       def_bool n
> > 
> > Other archs define NO_DMA to say they do not have DMA.
> > We should do it the same way for um.
> 
> Defining NO_DMA affects any code? In other words, we can kill NO_DMA
> definition?

NO_DMA affects HAS_DMA.

HAS_DMA is defined like this:

config HAS_DMA
        boolean
        depends on !NO_DMA
        default y

So to set HAS_DMA to true an arch should do:
1) Do not define NO_DMA
2) Define NO_DMA abd set it to 'n'

Must archs - including um - used principle 1).

In the um case we want to say that we do NOT have any DMA.
This can be done in two ways.
a) define NO_DMA and set it to 'y'
b) redefine HAS_DMA and set it to 'n'.

The patch you provided used principle b) where other archs use principle a).
So I suggest you should use principle a) for um too.

> Defining NO_DMA affects any code? 
As per above - yes it does. Because NO_DMA affects HAS_DMA and HAS_DMA affects code.

	Sam

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH -mm] uml: disable CONFIG_HAS_DMA
  2010-09-04 11:18     ` Sam Ravnborg
@ 2010-09-06 10:55       ` FUJITA Tomonori
  0 siblings, 0 replies; 5+ messages in thread
From: FUJITA Tomonori @ 2010-09-06 10:55 UTC (permalink / raw)
  To: sam; +Cc: fujita.tomonori, akpm, miklos, jdike, linux-kernel

On Sat, 4 Sep 2010 13:18:25 +0200
Sam Ravnborg <sam@ravnborg.org> wrote:

> On Sat, Sep 04, 2010 at 07:31:26PM +0900, FUJITA Tomonori wrote:
> > On Sat, 4 Sep 2010 12:13:13 +0200
> > Sam Ravnborg <sam@ravnborg.org> wrote:
> > 
> > > On Sat, Sep 04, 2010 at 06:17:56PM +0900, FUJITA Tomonori wrote:
> > > > I think that it's better to detect DMA misuse at build time rather
> > > > than calling BUG_ON. Architectures that can't do DMA need to disable
> > > > CONFIG_HAS_DMA.
> > > > 
> > > > Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
> > > > ---
> > > >  arch/um/Kconfig.um                |    3 +
> > > >  arch/um/defconfig                 |    1 -
> > > >  arch/um/include/asm/dma-mapping.h |  112 -------------------------------------
> > > >  3 files changed, 3 insertions(+), 113 deletions(-)
> > > >  delete mode 100644 arch/um/include/asm/dma-mapping.h
> > > > 
> > > > diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um
> > > > index ec2b8da..3de40b8 100644
> > > > --- a/arch/um/Kconfig.um
> > > > +++ b/arch/um/Kconfig.um
> > > > @@ -147,3 +147,6 @@ config KERNEL_STACK_ORDER
> > > >  	  This option determines the size of UML kernel stacks.  They will
> > > >  	  be 1 << order pages.  The default is OK unless you're running Valgrind
> > > >  	  on UML, in which case, set this to 3.
> > > > +
> > > > +config HAS_DMA
> > > > +       def_bool n
> > > 
> > > Other archs define NO_DMA to say they do not have DMA.
> > > We should do it the same way for um.
> > 
> > Defining NO_DMA affects any code? In other words, we can kill NO_DMA
> > definition?
> 
> NO_DMA affects HAS_DMA.
> 
> HAS_DMA is defined like this:
> 
> config HAS_DMA
>         boolean
>         depends on !NO_DMA
>         default y

Ah, I overlooked this. I'll send the updated patch.

Thanks a lot!

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-09-06 10:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-04  9:17 [PATCH -mm] uml: disable CONFIG_HAS_DMA FUJITA Tomonori
2010-09-04 10:13 ` Sam Ravnborg
2010-09-04 10:31   ` FUJITA Tomonori
2010-09-04 11:18     ` Sam Ravnborg
2010-09-06 10:55       ` FUJITA Tomonori

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.