aboutsummaryrefslogtreecommitdiffstats
path: root/net/decnet
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2013-01-19 11:05:57 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-02-03 18:21:37 -0600
commit7948bfddbe1bbfe7d25b6a269d1c1d264cf52768 (patch)
treea3d4374d11f86b6f57439d7d1d675b450a3c7f09 /net/decnet
parent833a2e184ad1464cda69d569788e1faa37191f37 (diff)
downloadkernel_samsung_smdk4412-7948bfddbe1bbfe7d25b6a269d1c1d264cf52768.zip
kernel_samsung_smdk4412-7948bfddbe1bbfe7d25b6a269d1c1d264cf52768.tar.gz
kernel_samsung_smdk4412-7948bfddbe1bbfe7d25b6a269d1c1d264cf52768.tar.bz2
ARM: DMA: Fix struct page iterator in dma_cache_maint() to work with sparsemem
commit 15653371c67c3fbe359ae37b720639dd4c7b42c5 upstream. 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. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/decnet')
0 files changed, 0 insertions, 0 deletions