s390/dma: provide proper ARCH_ZONE_DMA_BITS value
PATCH 1/1 s390/dma: provide proper ARCH_ZONE_DMA_BITS value
On s390 ZONE_DMA is up to 2G, i.e. ARCH_ZONE_DMA_BITS should be 31 bits. The current value is 24 and makes __dma_direct_alloc_pages() take a wrong turn first (but __dma_direct_alloc_pages() recovers then).
Let's correct ARCH_ZONE_DMA_BITS value and avoid wrong turns.
ZONE_DMA and ZONE_DMA32")
--- arch/s390/include/asm/dma.h | 1 + 1 file changed, 1 insertion(+)
arch/s390/include/asm/dma.h +1 -0
@@ -10,6 +10,7 @@* by the 31 bit heritage. */ #define MAX_DMA_ADDRESS 0x80000000 +#define ARCH_ZONE_DMA_BITS 31#ifdef CONFIG_PCI extern int isa_dma_bridge_buggy;
Signature · 1 line
2.17.1
Quoted 19 lines · On Thu, 18 Jul 2019 19:21:20 +0200 Halil Pasic <[email protected]> wrote:
On s390
ZONE_DMAis up to 2G, i.e.ARCH_ZONE_DMA_BITSshould be 31 bits. The current value is 24 and makes__dma_direct_alloc_pages()take a wrong turn first (but__dma_direct_alloc_pages()recovers then).Let's correct
ARCH_ZONE_DMA_BITSvalue and avoid wrong turns.Signed-off-by Halil Pasic <[email protected]>Reported-by Petr Tesarik <[email protected]>Fixes c61e9637340e ("dma-direct: add support for allocation from
ZONE_DMAandZONE_DMA32")--- arch/s390/include/asm/dma.h | 1 + 1 file changed, 1 insertion(+)arch/s390/include/asm/dma.h +0
-0
arch/s390/include/asm/dma.h line 16
Quoted 7 lines
arch/s390/include/asm/dma.h +1
-0@@ -10,6 +10,7 @@* by the 31 bit heritage. */ #define MAX_DMA_ADDRESS 0x80000000 +#define ARCH_ZONE_DMA_BITS 31#ifdef CONFIG_PCI extern int isa_dma_bridge_buggy;
Looks good to me.
Petr T
Quoted 10 lines · Halil Pasic
On s390
ZONE_DMAis up to 2G, i.e.ARCH_ZONE_DMA_BITSshould be 31 bits. The current value is 24 and makes__dma_direct_alloc_pages()take a wrong turn first (but__dma_direct_alloc_pages()recovers then).Let's correct
ARCH_ZONE_DMA_BITSvalue and avoid wrong turns.Signed-off-by Halil Pasic <[email protected]>Reported-by Petr Tesarik <[email protected]>Fixes c61e9637340e ("dma-direct: add support for allocation from
ZONE_DMAandZONE_DMA32")
Please don't add linebreaks to "Fixes:" tags.
arch/s390/include/asm/dma.h line 13
Quoted 13 lines
--- arch/s390/include/asm/dma.h | 1 + 1 file changed, 1 insertion(+)arch/s390/include/asm/dma.h +1
-0@@ -10,6 +10,7 @@* by the 31 bit heritage. */ #define MAX_DMA_ADDRESS 0x80000000 +#define ARCH_ZONE_DMA_BITS 31
powerpc has this in arch/powerpc/include/asm/page.h. This really should be consistently defined in the same header file across architectures.
Christoph, what is the preferred header file for this definition?
I'd also rather say it would be better to move the #ifndef ARCH_ZONE_DMA_BITS check to a common code header file instead of having it in a C file, and make it more obvious in which header file architectures should/can override the default, no?
Quoted 5 lines · On Fri, 19 Jul 2019 08:32:49 +0200 Heiko Carstens <[email protected]>…
Quoted 4 lines · Halil Pasic
On s390
ZONE_DMAis up to 2G, i.e.ARCH_ZONE_DMA_BITSshould be 31 bits. The current value is 24 and makes__dma_direct_alloc_pages()take a wrong turn first (but__dma_direct_alloc_pages()recovers then).
Quoted 9 lines
Quoted 6 lines
Let's correct
ARCH_ZONE_DMA_BITSvalue and avoid wrong turns.Signed-off-by Halil Pasic <[email protected]>Reported-by Petr Tesarik <[email protected]>Fixes c61e9637340e ("dma-direct: add support for allocation from
ZONE_DMAandZONE_DMA32")Please don't add linebreaks to "Fixes:" tags.
Will remember that, thanks! I was not aware of the rule and checkpatch did not complain.
Quoted 18 lines
arch/s390/include/asm/dma.h line 13
Quoted 13 lines
--- arch/s390/include/asm/dma.h | 1 + 1 file changed, 1 insertion(+)arch/s390/include/asm/dma.h +1
-0@@ -10,6 +10,7 @@* by the 31 bit heritage. */ #define MAX_DMA_ADDRESS 0x80000000 +#define ARCH_ZONE_DMA_BITS 31powerpc has this in
arch/powerpc/include/asm/page.h. This really should be consistently defined in the same header file across architectures.
Quoted 6 lines
Christoph, what is the preferred header file for this definition?
I'd also rather say it would be better to move the #ifndef
ARCH_ZONE_DMA_BITScheck to a common code header file instead of having it in a C file, and make it more obvious in which header file architectures should/can override the default, no?
+1
I will wait for Christoph's answer with a respin. Thanks for having a look.
Regards,
Halil
Quoted 14 lines · On Fri, 19 Jul 2019 13:01:30 +0200 Halil Pasic <[email protected]> wrote:
Quoted 14 lines
arch/s390/include/asm/dma.h line 13
Quoted 9 lines
arch/s390/include/asm/dma.h +1
-0@@ -10,6 +10,7 @@* by the 31 bit heritage. */ #define MAX_DMA_ADDRESS 0x80000000 +#define ARCH_ZONE_DMA_BITS 31powerpc has this in
arch/powerpc/include/asm/page.h. This really should be consistently defined in the same header file across architectures.
Quoted 1 line
Quoted 1 line
Christoph, what is the preferred header file for this definition?
ping
Christoph could you please answer Heiko's question, so I can do my respin.
Regards,
Halil
Quoted 10 lines
Quoted 5 lines
I'd also rather say it would be better to move the #ifndef
ARCH_ZONE_DMA_BITScheck to a common code header file instead of having it in a C file, and make it more obvious in which header file architectures should/can override the default, no?+1
I will wait for Christoph's answer with a respin. Thanks for having a look.
Quoted 17 lines · Halil Pasic
Quoted 14 lines · On Fri, 19 Jul 2019 13:01:30 +0200 Halil Pasic <[email protected]> wrote:
Quoted 14 lines
arch/s390/include/asm/dma.h line 13
Quoted 9 lines
arch/s390/include/asm/dma.h +1
-0@@ -10,6 +10,7 @@* by the 31 bit heritage. */ #define MAX_DMA_ADDRESS 0x80000000 +#define ARCH_ZONE_DMA_BITS 31powerpc has this in
arch/powerpc/include/asm/page.h. This really should be consistently defined in the same header file across architectures.
Quoted 6 lines
Quoted 1 line
Quoted 1 line
Christoph, what is the preferred header file for this definition?
ping
Christoph could you please answer Heiko's question, so I can do my respin.
page.h is fine for now. dma.h is odd for sure as it is for legacy ISA DMA only.