Dear all: I test usb driver under mips machine and I have some questions always bother me. 1. what is the difference between dma_pool_create and dma_alloc_coherent and where they are defined? from the result it return, dma_pool_create will return non-cache area, but dma_alloc_coherent returns catched area. why they get the dma in it? Does that have special meaning? 2. what are wmb() and rmb(). used for? do they use to flush cache? and what these 3 leterr mean? wmb, write memory back rmb, read memory back appreciate your help, miloody