usb-storage: use hcd_uses_dma to check for DMA capabilities
authorChristoph Hellwig <hch@lst.de>
Tue, 3 Sep 2019 08:46:12 +0000 (10:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Sep 2019 13:26:09 +0000 (15:26 +0200)
The dma_mask on its own doesn't mean much.  Instead check for the actual
flag.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20190903084615.19161-4-hch@lst.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/storage/scsiglue.c

index df4de8323eff91cc462d2a20d3c4c71627a80c41..6737fab9495949c0187364cfce1e7469687da9fa 100644 (file)
@@ -40,6 +40,7 @@
 #include <scsi/scsi_eh.h>
 
 #include "usb.h"
+#include <linux/usb/hcd.h>
 #include "scsiglue.h"
 #include "debug.h"
 #include "transport.h"
@@ -141,11 +142,10 @@ static int slave_configure(struct scsi_device *sdev)
 
        /*
         * Some USB host controllers can't do DMA; they have to use PIO.
-        * They indicate this by setting their dma_mask to NULL.  For
-        * such controllers we need to make sure the block layer sets
+        * For such controllers we need to make sure the block layer sets
         * up bounce buffers in addressable memory.
         */
-       if (!us->pusb_dev->bus->controller->dma_mask)
+       if (!hcd_uses_dma(bus_to_hcd(us->pusb_dev->bus)))
                blk_queue_bounce_limit(sdev->request_queue, BLK_BOUNCE_HIGH);
 
        /*