From e50287be7c007a10e6e2e3332e52466faf4b6a04 Mon Sep 17 00:00:00 2001 From: Sathya Perla Date: Tue, 4 Mar 2014 12:14:38 +0530 Subject: [PATCH] be2net: dma_sync each RX frag before passing it to the stack The driver currently maps a page for DMA, divides the page into multiple frags and posts them to the HW. It un-maps the page after data is received on all the frags of the page. This scheme doesn't work when bounce buffers are used for DMA (swiotlb=force kernel param). This patch fixes this problem by calling dma_sync_single_for_cpu() for each frag (excepting the last one) so that the data is copied from the bounce buffers. The page is un-mapped only when DMA finishes on the last frag of the page. (Thanks Ben H. for suggesting the dma_sync API!) This patch also renames the "last_page_user" field of be_rx_page_info{} struct to "last_frag" to improve readability of the fixed code. Reported-by: Li Fengmao Signed-off-by: Sathya Perla Signed-off-by: David S. Miller --- Reading git-format-patch failed