On 2010-05-14 5:27 PM, Ming Lei wrote: > 2010/5/14 Felix Fietkau <nbd@xxxxxxxxxxx>: >> On 2010-05-14 3:16 PM, tom.leiming@xxxxxxxxx wrote: >>> From: Ming Lei <tom.leiming@xxxxxxxxx> >>> >>> If buffer is to be accessed by cpu after dma transfer is over, but >>> between dma mapping and dma unmapping, we should use >>> dma_sync_single_for_cpu to sync the buffer between cpu with >>> device. And dma_sync_single_for_device is used to let >>> device gain the buffer again. >> I think this patch is wrong. On most MIPS devices, >> dma_sync_single_for_cpu is a no-op. In fact, with this patch, the rx >> path fails very quickly. > > Sorry for my bad email client. > > On most MIPS devices, dma_sync_single_for_cpu does same things > almost with dma_unmap_single(plat_unmap_dma_mem is no-op). If > dma_unmap_single is enough, dma_sync_single_for_cpu is certainly > enough, > isn't it? Because I did some testing with these functions while writing the code, I already know that dma_sync_single_for_cpu is not enough in this case. Maybe we need to place the dma_sync_single_for_device call elsewhere and then move the dma_sync_single_for_cpu call there afterwads, but simply replacing this instance as is done in your patch *will* cause regressions. - Felix -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html