diff options
Diffstat (limited to 'drivers/usb/core/buffer.c')
-rw-r--r-- | drivers/usb/core/buffer.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/usb/core/buffer.c b/drivers/usb/core/buffer.c index 1359b78a624e..6cf22c27f2d2 100644 --- a/drivers/usb/core/buffer.c +++ b/drivers/usb/core/buffer.c | |||
@@ -66,9 +66,7 @@ int hcd_buffer_create(struct usb_hcd *hcd) | |||
66 | char name[16]; | 66 | char name[16]; |
67 | int i, size; | 67 | int i, size; |
68 | 68 | ||
69 | if (!IS_ENABLED(CONFIG_HAS_DMA) || | 69 | if (hcd->localmem_pool || !hcd_uses_dma(hcd)) |
70 | (!is_device_dma_capable(hcd->self.sysdev) && | ||
71 | !hcd->localmem_pool)) | ||
72 | return 0; | 70 | return 0; |
73 | 71 | ||
74 | for (i = 0; i < HCD_BUFFER_POOLS; i++) { | 72 | for (i = 0; i < HCD_BUFFER_POOLS; i++) { |
@@ -129,8 +127,7 @@ void *hcd_buffer_alloc( | |||
129 | return gen_pool_dma_alloc(hcd->localmem_pool, size, dma); | 127 | return gen_pool_dma_alloc(hcd->localmem_pool, size, dma); |
130 | 128 | ||
131 | /* some USB hosts just use PIO */ | 129 | /* some USB hosts just use PIO */ |
132 | if (!IS_ENABLED(CONFIG_HAS_DMA) || | 130 | if (!hcd_uses_dma(hcd)) { |
133 | !is_device_dma_capable(bus->sysdev)) { | ||
134 | *dma = ~(dma_addr_t) 0; | 131 | *dma = ~(dma_addr_t) 0; |
135 | return kmalloc(size, mem_flags); | 132 | return kmalloc(size, mem_flags); |
136 | } | 133 | } |
@@ -160,8 +157,7 @@ void hcd_buffer_free( | |||
160 | return; | 157 | return; |
161 | } | 158 | } |
162 | 159 | ||
163 | if (!IS_ENABLED(CONFIG_HAS_DMA) || | 160 | if (!hcd_uses_dma(hcd)) { |
164 | !is_device_dma_capable(bus->sysdev)) { | ||
165 | kfree(addr); | 161 | kfree(addr); |
166 | return; | 162 | return; |
167 | } | 163 | } |