linux_old1/arch/arm
Russell King 15653371c6 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>
2013-01-19 11:05:57 +00:00
..
boot ARM: dts: fix duplicated build target and alphabetical sort out for exynos 2012-12-21 16:38:29 -08:00
common ARM: 7611/1: VIC: fix bug in VIC irqdomain code 2013-01-02 10:35:07 +00:00
configs ARM: arm-soc: late cleanups for omap 2012-12-30 09:59:21 -08:00
crypto
include Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-12-20 18:05:28 -08:00
kernel ARM: 7628/1: head.S: map one extra section for the ATAG/DTB area 2013-01-16 16:51:13 +00:00
lib
mach-at91 Sound updates for 3.8-rc1 2012-12-13 11:51:23 -08:00
mach-bcm Add support for generic BCM SoC chipsets 2012-11-19 22:39:07 -08:00
mach-bcm2835 ARM: arm-soc: SoC updates for 3.8 2012-12-12 12:05:15 -08:00
mach-clps711x ARM: clps711x: Rename board files to match functionality 2012-11-21 09:57:46 -08:00
mach-cns3xxx ARM: arm-soc: Non-critical bug fixes 2012-12-12 11:32:16 -08:00
mach-davinci ARM: arm-soc fixes for 3.8 2012-12-20 07:21:54 -08:00
mach-dove ARM: arm-soc: Updates for Marvell mvebu/kirkwood 2012-12-14 14:54:26 -08:00
mach-ebsa110
mach-ep93xx ARM: ep93xx: properly wait for UART FIFO to be empty 2012-12-12 11:22:56 +11:00
mach-exynos Merge branch 'v3.8-samsung-fixes-audio' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes 2012-12-20 09:42:47 -08:00
mach-footbridge
mach-gemini
mach-h720x
mach-highbank Merge branch 'next/cam-samsung' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/soc 2012-11-30 09:27:57 -08:00
mach-imx ARM: 7612/1: imx: Do not select some errata that depends on !ARCH_MULTIPLATFORM 2013-01-06 17:54:02 +00:00
mach-integrator ARM: arm-soc: SoC updates for 3.8 2012-12-12 12:05:15 -08:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-12-12 11:30:02 -08:00
mach-kirkwood ARM: arm-soc: Updates for Marvell mvebu/kirkwood 2012-12-14 14:54:26 -08:00
mach-ks8695
mach-l7200/include/mach
mach-lpc32xx ARM: LPC32xx: Add the motor PWM clock 2012-11-12 11:27:40 +01:00
mach-mmp ARM: mmp: select pinctrl driver 2012-11-21 13:18:04 +08:00
mach-msm
mach-mv78xx0
mach-mvebu arm: mvebu: add L2 cache support 2012-11-27 15:35:05 +00:00
mach-mxs Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-12-18 09:58:09 -08:00
mach-netx treewide: Fix typos in various drivers 2012-12-03 11:05:04 +01:00
mach-nomadik MTD pull for 3.8 2012-12-19 12:47:41 -08:00
mach-omap1 ARM: arm-soc: late cleanups for omap 2012-12-30 09:59:21 -08:00
mach-omap2 ARM: arm-soc: late cleanups for omap 2012-12-30 09:59:21 -08:00
mach-orion5x arm: orion5x: convert 'LaCie Ethernet Disk mini v2' to Device Tree 2012-11-21 21:00:51 +00:00
mach-picoxcell
mach-prima2
mach-pxa Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-12-13 19:22:22 -08:00
mach-realview ARM: 7607/1: realview: fix private peripheral memory base for EB rev. B boards 2012-12-20 10:42:00 +00:00
mach-rpc
mach-s3c24xx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
mach-s3c64xx ARM: S3C64XX: Add I2S clkdev support 2012-12-19 09:49:29 -08:00
mach-s3c2410
mach-s3c2412
mach-s3c2440
mach-s5p64x0 ARM: S5P64X0: Add I2S clkdev support 2012-12-19 09:49:29 -08:00
mach-s5pc100 ARM: S5PC100: Add I2S clkdev support 2012-12-19 09:49:29 -08:00
mach-s5pv210 ARM: S5PV210: Avoid passing the clks through platform data 2012-12-19 09:49:29 -08:00
mach-sa1100 ARM: move serial_sa1100.h header file to linux/platform_data 2012-11-16 11:35:29 +00:00
mach-shark
mach-shmobile fbdev changes for 3.8: 2012-12-15 13:03:48 -08:00
mach-socfpga ARM: socfpga: mark secondary_trampoline as cpuinit 2012-11-06 23:14:49 +01:00
mach-spear3xx ARM: SPEAr3xx: Shirq: Move shirq controller out of plat/ 2012-11-26 16:55:33 +05:30
mach-spear6xx
mach-spear13xx ARM: SPEAr1310: Fix AUXDATA for compact flash controller 2012-11-26 16:55:31 +05:30
mach-sunxi sunxi: Change the machine compatible string. 2012-12-23 18:20:15 +01:00
mach-tegra Merge tag 'tegra-for-3.8-fixes-for-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into fixes 2012-12-17 10:04:27 -08:00
mach-u300 ARM: arm-soc fixes for 3.8 2012-12-20 07:21:54 -08:00
mach-ux500 ARM: arm-soc fixes for 3.8 2012-12-20 07:21:54 -08:00
mach-versatile ARM: 7610/1: versatile: bump IRQ numbers 2013-01-02 10:35:06 +00:00
mach-vexpress ARM: 7609/1: disable errata work-arounds which access secure registers 2013-01-02 10:35:05 +00:00
mach-vt8500 ARM: arm-soc: multiplatform conversion patches 2012-12-13 10:57:16 -08:00
mach-w90x900
mach-zynq ARM: zynq: Remove all unused mach headers 2012-11-21 10:52:21 +01:00
mm ARM: DMA: Fix struct page iterator in dma_cache_maint() to work with sparsemem 2013-01-19 11:05:57 +00:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-12-12 18:07:07 -08:00
nwfpe
oprofile
plat-iop
plat-omap ARM: arm-soc: late cleanups for omap 2012-12-30 09:59:21 -08:00
plat-orion ARM: arm-soc: Updates for Marvell mvebu/kirkwood 2012-12-14 14:54:26 -08:00
plat-pxa ARM: pxa: remove pxa95x support 2012-11-15 13:50:13 +01:00
plat-s3c24xx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
plat-samsung ARM: SAMSUNG: Add missing include guard to gpio-core.h 2012-12-18 19:00:25 -08:00
plat-spear ARM: SPEAr3xx: Shirq: Move shirq controller out of plat/ 2012-11-26 16:55:33 +05:30
plat-versatile ARM: arm-soc: SoC updates for 3.8 2012-12-12 12:05:15 -08:00
tools ARM: boot: Fix usage of kecho 2012-11-12 23:22:54 +01:00
vfp ARM: 7627/1: Predicate preempt logic on PREEMP_COUNT not PREEMPT alone 2013-01-16 16:51:10 +00:00
xen Features: 2012-12-13 14:29:16 -08:00
Kconfig ARM: 7609/1: disable errata work-arounds which access secure registers 2013-01-02 10:35:05 +00:00
Kconfig-nommu
Kconfig.debug ARM: arm-soc: multiplatform conversion patches 2012-12-13 10:57:16 -08:00
Makefile ARM: arm-soc: multiplatform conversion patches 2012-12-13 10:57:16 -08:00