Skip to content
  • David Gibson's avatar
    usb: Convert usb_packet_{map, unmap} to universal DMA helpers · e2f89926
    David Gibson authored
    
    
    The USB UHCI and EHCI drivers were converted some time ago to use the
    pci_dma_*() helper functions.  However, this conversion was not complete
    because in some places both these drivers do DMA via the usb_packet_map()
    function in usb-libhw.c.  That function directly used
    cpu_physical_memory_map().
    
    Now that the sglist code uses DMA wrappers properly, we can convert the
    functions in usb-libhw.c, thus conpleting the conversion of UHCI and EHCI
    to use the DMA wrappers.
    
    Note that usb_packet_map() invokes dma_memory_map() with a NULL invalidate
    callback function.  When IOMMU support is added, this will mean that
    usb_packet_map() and the corresponding usb_packet_unmap() must be called in
    close proximity without dropping the qemu device lock - otherwise the guest
    might invalidate IOMMU mappings while they are still in use by the device
    code.
    
    Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
    e2f89926