On Fri, 19 Jul 2019 08:32:49 +0200 Heiko Carstens <heiko.carstens@xxxxxxxxxx> wrote: > On Thu, Jul 18, 2019 at 07:21:20PM +0200, Halil Pasic wrote: > > 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. > > > > Signed-off-by: Halil Pasic <pasic@xxxxxxxxxxxxx> > > Reported-by: Petr Tesarik <ptesarik@xxxxxxx> > > Fixes: c61e9637340e ("dma-direct: add support for allocation from > > ZONE_DMA and ZONE_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. > > --- > > arch/s390/include/asm/dma.h | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/arch/s390/include/asm/dma.h b/arch/s390/include/asm/dma.h > > index 6f26f35d4a71..3b0329665b13 100644 > > --- a/arch/s390/include/asm/dma.h > > +++ b/arch/s390/include/asm/dma.h > > @@ -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? +1 I will wait for Christoph's answer with a respin. Thanks for having a look. Regards, Halil