<div class="gmail_quote">Hello all,<div><br></div><div>I just debugged a problem with a USB driver where it was calling dma_alloc_coherent with a GFP_DMA32 flag.</div><div>It turned out that in __dma_alloc_remap, it clears the GFP_DMA and GFP_HIGHMEM flags when calling arm_vmregion_alloc so that it does not clash with the slab allocator flag requirements, but it does not clear GFP_DMA32. The GFP_SLAB_BUG_MASK includes GFP_DMA32, so this looks like a bug to me. Should it be clearing GFP_DMA32 as well as GFP_DMA and GFP_HIGHMEM ?</div>

<div><br></div><div>I checked in the latest <a href="http://kernel.org" target="_blank">kernel.org</a> code, and the issue is still there. </div><div><br></div><div>Is this a bug, or should it just be calling with GFP_DMA instead of GFP_DMA32?</div>

<div><br></div><div>For now, I am working around it by using GFP_DMA in the dma_alloc_coherent call as we have no GFP_DMA lower limit, so GFP_DMA and GFP_DMA32 are the same on my architecture.</div><div><br></div><div>Any advice appreciated,</div>

<div><br></div><div>Thanks</div><div><br></div><div>Bob</div><div><br></div>
</div><br>