OSDN Git Service

usb: don't inherity DMA properties for USB devices
authorChristoph Hellwig <hch@lst.de>
Thu, 10 Sep 2020 16:03:49 +0000 (18:03 +0200)
committerChristoph Hellwig <hch@lst.de>
Thu, 17 Sep 2020 16:43:25 +0000 (18:43 +0200)
commit6eb0233ec2d0df288fe8515d5b0b2b15562e05bb
treec1783ef708221981298dc653bbaa7db2c851e1cb
parentcf141ae989e2ff119cd320326da5923b480d1641
usb: don't inherity DMA properties for USB devices

As the comment in usb_alloc_dev correctly states, drivers can't use
the DMA API on usb device, and at least calling dma_set_mask on them
is highly dangerous.  Unlike what the comment states upper level drivers
also can't really use the presence of a dma mask to check for DMA
support, as the dma_mask is set by default for most busses.

Setting the dma_mask comes from "[PATCH] usbcore dma updates (and doc)"
in BitKeeper times, as it seems like it was primarily for setting the
NETIF_F_HIGHDMA flag in USB drivers, something that has long been
fixed up since.

Setting the dma_pfn_offset comes from commit b44bbc46a8bb
("usb: core: setup dma_pfn_offset for USB devices and, interfaces"),
which worked around the fact that the scsi_calculate_bounce_limits
functions wasn't going through the proper driver interface to query
DMA information, but that function was removed in commit 21e07dba9fb1
("scsi: reduce use of block bounce buffers") years ago.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/message.c
drivers/usb/core/usb.c