* [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.