usb: add a HCD_DMA flag instead of guestimating DMA capabilities
The usb core is the only major place in the kernel that checks for a non-NULL device dma_mask to see if a device is DMA capable. This is generally a bad idea, as all major busses always set up a DMA mask, even if the device is not DMA capable - in fact bus layers like PCI can't even know if a device is DMA capable at enumeration time. This leads to lots of workaround in HCD drivers, and also prevented us from setting up a DMA mask for platform devices by default last time we tried. Replace this guess with an explicit HCD_DMA that is set by drivers that appear to have DMA support. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20190816062435.881-4-hch@lst.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
此提交包含在:
@@ -2454,7 +2454,6 @@ struct usb_hcd *__usb_create_hcd(const struct hc_driver *driver,
|
||||
hcd->self.controller = dev;
|
||||
hcd->self.sysdev = sysdev;
|
||||
hcd->self.bus_name = bus_name;
|
||||
hcd->self.uses_dma = (sysdev->dma_mask != NULL);
|
||||
|
||||
timer_setup(&hcd->rh_timer, rh_timer_func, 0);
|
||||
#ifdef CONFIG_PM
|
||||
|
新增問題並參考
封鎖使用者