summaryrefslogtreecommitdiff
path: root/arch/mn10300
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2013-01-19 11:05:57 (GMT)
committerRussell King <rmk+kernel@arm.linux.org.uk>2013-01-19 11:05:57 (GMT)
commit15653371c67c3fbe359ae37b720639dd4c7b42c5 (patch)
treee92cba77b7796993d2cce4af22b9022196c9211a /arch/mn10300
parent6f16f4998f98e42e3f2dedf663cfb691ff0324af (diff)
downloadlinux-fsl-qoriq-15653371c67c3fbe359ae37b720639dd4c7b42c5.tar.xz
ARM: DMA: Fix struct page iterator in dma_cache_maint() to work with sparsemem
Subhash Jadavani reported this partial backtrace: Now consider this call stack from MMC block driver (this is on the ARMv7 based board): [<c001b50c>] (v7_dma_inv_range+0x30/0x48) from [<c0017b8c>] (dma_cache_maint_page+0x1c4/0x24c) [<c0017b8c>] (dma_cache_maint_page+0x1c4/0x24c) from [<c0017c28>] (___dma_page_cpu_to_dev+0x14/0x1c) [<c0017c28>] (___dma_page_cpu_to_dev+0x14/0x1c) from [<c0017ff8>] (dma_map_sg+0x3c/0x114) This is caused by incrementing the struct page pointer, and running off the end of the sparsemem page array. Fix this by incrementing by pfn instead, and convert the pfn to a struct page. Cc: <stable@vger.kernel.org> Suggested-by: James Bottomley <JBottomley@Parallels.com> Tested-by: Subhash Jadavani <subhashj@codeaurora.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/mn10300')
0 files changed, 0 insertions, 0 deletions