mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-26 03:17:48 +00:00
ff9c895f07
This patch (as1368) fixes a rather obscure bug in usbmon: When tracing URBs sent by the scatter-gather library, it accesses the data buffers while they are still mapped for DMA. The solution is to move the mapping and unmapping out of the s-g library and into the usual place in hcd.c. This requires the addition of new URB flag bits to describe the kind of mapping needed, since we have to call dma_map_sg() if the HCD supports native scatter-gather operation and dma_map_page() if it doesn't. The nice thing about having the new flags is that they simplify the testing for unmapping. The patch removes the only caller of usb_buffer_[un]map_sg(), so those functions are #if'ed out. A later patch will remove them entirely. As a result of this change, urb->sg will be set in situations where it wasn't set previously. Hence the xhci and whci drivers are adjusted to test urb->num_sgs instead, which retains its original meaning and is nonzero only when the HCD has to handle a scatterlist. Finally, even when a submission error occurs we don't want to hand URBs to usbmon before they are unmapped. The submission path is rearranged so that map_urb_for_dma() is called only for non-root-hub URBs and unmap_urb_for_dma() is called immediately after a submission error. This simplifies the error handling. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> CC: <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
||
---|---|---|
.. | ||
whci | ||
ehci-atmel.c | ||
ehci-au1xxx.c | ||
ehci-dbg.c | ||
ehci-fsl.c | ||
ehci-fsl.h | ||
ehci-hcd.c | ||
ehci-hub.c | ||
ehci-ixp4xx.c | ||
ehci-mem.c | ||
ehci-mxc.c | ||
ehci-omap.c | ||
ehci-orion.c | ||
ehci-pci.c | ||
ehci-ppc-of.c | ||
ehci-ps3.c | ||
ehci-q.c | ||
ehci-sched.c | ||
ehci-w90x900.c | ||
ehci-xilinx-of.c | ||
ehci.h | ||
fhci-dbg.c | ||
fhci-hcd.c | ||
fhci-hub.c | ||
fhci-mem.c | ||
fhci-q.c | ||
fhci-sched.c | ||
fhci-tds.c | ||
fhci.h | ||
hwa-hc.c | ||
imx21-dbg.c | ||
imx21-hcd.c | ||
imx21-hcd.h | ||
isp116x-hcd.c | ||
isp116x.h | ||
isp1362-hcd.c | ||
isp1362.h | ||
isp1760-hcd.c | ||
isp1760-hcd.h | ||
isp1760-if.c | ||
Kconfig | ||
Makefile | ||
ohci-at91.c | ||
ohci-au1xxx.c | ||
ohci-da8xx.c | ||
ohci-dbg.c | ||
ohci-ep93xx.c | ||
ohci-hcd.c | ||
ohci-hub.c | ||
ohci-lh7a404.c | ||
ohci-mem.c | ||
ohci-omap.c | ||
ohci-pci.c | ||
ohci-pnx4008.c | ||
ohci-pnx8550.c | ||
ohci-ppc-of.c | ||
ohci-ppc-soc.c | ||
ohci-ps3.c | ||
ohci-pxa27x.c | ||
ohci-q.c | ||
ohci-s3c2410.c | ||
ohci-sa1111.c | ||
ohci-sh.c | ||
ohci-sm501.c | ||
ohci-ssb.c | ||
ohci-tmio.c | ||
ohci.h | ||
oxu210hp-hcd.c | ||
oxu210hp.h | ||
pci-quirks.c | ||
pci-quirks.h | ||
r8a66597-hcd.c | ||
r8a66597.h | ||
sl811_cs.c | ||
sl811-hcd.c | ||
sl811.h | ||
u132-hcd.c | ||
uhci-debug.c | ||
uhci-hcd.c | ||
uhci-hcd.h | ||
uhci-hub.c | ||
uhci-q.c | ||
xhci-dbg.c | ||
xhci-ext-caps.h | ||
xhci-hub.c | ||
xhci-mem.c | ||
xhci-pci.c | ||
xhci-ring.c | ||
xhci.c | ||
xhci.h |