The map'd user virtual memory is carved into network buffers and used for DMA.The MAC is successfully able to DMA ethernet frames to the physical memory. From the Rx interrupt handler bh (kernel logical memory) the frames received could be viewed and the cache functions also work fine. However, the mmap'd memory in user space does not reflect the changes.

Why is the physical memory mapped to user virtual does not reflect the chages ?

I was using the cache (flush/inv) routines used on the kernel logical address and was able to see the DMA'd data. The same idea I used for the user virtual mapping and the DMA'd data was visible in the user space mapping.