linux-stable-rt/arch/arm
Russell King 1522ac3ec9 [ARM] Fix virtual to physical translation macro corner cases
The current use of these macros works well when the conversion is
entirely linear.  In this case, we can be assured that the following
holds true:

	__va(p + s) - s = __va(p)

However, this is not always the case, especially when there is a
non-linear conversion (eg, when there is a 3.5GB hole in memory.)
In this case, if 's' is the size of the region (eg, PAGE_SIZE) and
'p' is the final page, the above is most definitely not true.

So, we must ensure that __va() and __pa() are only used with valid
kernel direct mapped RAM addresses.  This patch tweaks the code
to achieve this.

Tested-by: Charles Moschel <fred99@carolina.rr.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-03-12 23:09:09 +00:00
..
boot
common
configs
include/asm
kernel
lib
mach-aaec2000
mach-at91
mach-clps711x
mach-davinci
mach-ebsa110
mach-ep93xx
mach-footbridge
mach-h720x
mach-imx
mach-integrator
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-ixp23xx
mach-ixp2000
mach-kirkwood
mach-ks8695
mach-l7200
mach-lh7a40x
mach-loki
mach-msm
mach-mv78xx0
mach-mx1
mach-mx2
mach-mx3
mach-netx
mach-ns9xxx
mach-omap1
mach-omap2
mach-orion5x
mach-pnx4008
mach-pxa
mach-realview
mach-rpc
mach-s3c24a0/include/mach
mach-s3c2400
mach-s3c2410
mach-s3c2412
mach-s3c2440
mach-s3c2442
mach-s3c2443
mach-s3c6400
mach-s3c6410
mach-sa1100
mach-shark
mach-versatile
mach-w90x900
mm
nwfpe
oprofile
plat-iop
plat-mxc
plat-omap
plat-orion
plat-s3c
plat-s3c24xx
plat-s3c64xx
tools
vfp
Kconfig
Kconfig-nommu
Kconfig.debug
Makefile