On Sat, 21 Aug 2010, Maulik Mankad wrote: > > I can't tell if it would be correct here, but have you considered just > > calling unmap_urb_for_dma() instead? (You'd have to make that routine > > non-static and EXPORT it first.) > > > > Yes I did exactly that as a first step. It worked. > > Then found that only dma_unmap_page() is necessary since the > map_urb_for_dma() function > does a page mapping using dma_map_page() at least for Storage and HID use cases. > > I tested this with Storage and HID classes. > > What I may be missing is some class driver which might be using dma_map_sg() or > other such routine to map the DMA buffers. Is there such a possibility? All the mappings are done in map_urb_for_dma, except in the case where the buffer was set up for a coherent mapping. If you always call unmap_urb_for_dma then you won't have to worry about strange drivers or exceptional cases. Besides, it means adding less new code than your patch contains. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html