usb: don't create dma pools for HCDs with a localmem_pool
authorChristoph Hellwig <hch@lst.de>
Sun, 11 Aug 2019 08:05:15 +0000 (10:05 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 15 Aug 2019 13:17:07 +0000 (15:17 +0200)
If the HCD provides a localmem pool we will never use the DMA pools, so
don't create them.

Fixes: b0310c2f09bb ("USB: use genalloc for USB HCs with local memory")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20190811080520.21712-2-hch@lst.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/buffer.c

index 1359b78..1a5b3dc 100644 (file)
@@ -66,9 +66,9 @@ int hcd_buffer_create(struct usb_hcd *hcd)
        char            name[16];
        int             i, size;
 
-       if (!IS_ENABLED(CONFIG_HAS_DMA) ||
-           (!is_device_dma_capable(hcd->self.sysdev) &&
-            !hcd->localmem_pool))
+       if (hcd->localmem_pool ||
+           !IS_ENABLED(CONFIG_HAS_DMA) ||
+           !is_device_dma_capable(hcd->self.sysdev))
                return 0;
 
        for (i = 0; i < HCD_BUFFER_POOLS; i++) {