On Sat, Jul 04, 2009 at 11:41:46PM +0800, Ming Lei wrote:nothing. dma transfer functions. being owned and remains there the DMA agent access the subsequently without a That is right, I don't think in our case the buffer is being accessed during DMA transfer. In drivers/usb/core/config.c, function usb_get_descriptor calls usb_control_msg to submit URB, and that is a blocking call, it wouldn't return until DMA to RAM is finished. As Alan pointed out, if dma_map_single() invalidates cache lines for IN URB, nothing special needs to be done on URB completion. But the fact that a call to dma_cache_maint before CPU accessing the buffer makes the inconsistency problem go away is leading me to the dma_cache_maint function itself, is it possible that, under certain condition, dma_cache_maint fails to invalidate the cache lines? Because of the random nature of this problem, calling dma_cache_maint the second time just happened to help. Any idea how to check for dma_cache_maint failures? Fei -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| James Bottomley | Re: Integration of SCST in the mainstream Linux kernel |
| Greg Kroah-Hartman | [PATCH 007/196] Chinese: add translation of stable_kernel_rules.txt |
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Jan Engelhardt | intel iommu (Re: -mm merge plans for 2.6.23) |
git: | |
| Alexey Dobriyan | Re: [GIT]: Networking |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | Re: [BUG] New Kernel Bugs |
