On Thu, Jan 17, 2013 at 09:11:20AM +0000, James Bottomley wrote:
On Wed, 2013-01-16 at 15:18 -0800, Tejun Heo wrote:
quoted
On Wed, Jan 16, 2013 at 10:32:35AM +0000, James Bottomley wrote:
quoted
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index 6b2fb87..ab88c5b 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -809,7 +809,7 @@ static void dma_cache_maint_page(struct page *page, unsigned long offset,
op(vaddr, len, dir);
}
offset = 0;
- page++;
+ page = pfn_to_page(page_to_pfn(page) + 1);
Probably page = nth_page(page, 1) is the better form.
It's the same thing.
I'd actually prefer page = pfn_to_page(page_to_pfn(page) + 1); because
it makes the code look like the hack it is. The preferred form for all
iterators like this should be to iterate over the pfn instead of a
pointer into the page arrays, because that will always work correctly no
matter how many weird and wonderful memory schemes we come up with.
So, why don't we update the code to do that then?