summaryrefslogtreecommitdiff
path: root/drivers/usb/storage/sierra_ms.h
diff options
context:
space:
mode:
authorFredrik Noring <noring@nocrew.org>2019-12-10 20:29:05 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-12-11 11:06:41 +0300
commitf8c63edfd78905320e86b6b2be2b7a5ac768fa4e (patch)
tree5e56801afcf833d655524a276c0d886ae7915a55 /drivers/usb/storage/sierra_ms.h
parent09068c1ad53fb077bdac288869dec2435420bdc4 (diff)
downloadlinux-f8c63edfd78905320e86b6b2be2b7a5ac768fa4e.tar.xz
USB: Fix incorrect DMA allocations for local memory pool drivers
Fix commit 7b81cb6bddd2 ("usb: add a HCD_DMA flag instead of guestimating DMA capabilities") where local memory USB drivers erroneously allocate DMA memory instead of pool memory, causing OHCI Unrecoverable Error, disabled HC died; cleaning up The order between hcd_uses_dma() and hcd->localmem_pool is now arranged as in hcd_buffer_alloc() and hcd_buffer_free(), with the test for hcd->localmem_pool placed first. As an alternative, one might consider adjusting hcd_uses_dma() with static inline bool hcd_uses_dma(struct usb_hcd *hcd) { - return IS_ENABLED(CONFIG_HAS_DMA) && (hcd->driver->flags & HCD_DMA); + return IS_ENABLED(CONFIG_HAS_DMA) && + (hcd->driver->flags & HCD_DMA) && + (hcd->localmem_pool == NULL); } One can also consider unsetting HCD_DMA for local memory pool drivers. Fixes: 7b81cb6bddd2 ("usb: add a HCD_DMA flag instead of guestimating DMA capabilities") Cc: stable <stable@vger.kernel.org> Signed-off-by: Fredrik Noring <noring@nocrew.org> Link: https://lore.kernel.org/r/20191210172905.GA52526@sx9 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/storage/sierra_ms.h')
0 files changed, 0 insertions, 0 deletions