linux/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 [ARM] 5421/1: ftrace: fix crash due to tracing of __naked functions 2009-03-12 21:33:03 +00:00
lib
mach-aaec2000
mach-at91 [ARM] at91: fix for Atmel AT91 powersaving 2009-02-22 22:37:21 +00:00
mach-clps711x
mach-davinci usb: musb: make Davinci *work* in mainline 2009-02-27 14:40:51 -08:00
mach-ebsa110
mach-ep93xx [ARM] 5419/1: ep93xx: fix build warnings about struct i2c_board_info 2009-03-05 17:05:22 +00:00
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 MX1 fix include 2009-03-06 17:28:10 +01:00
mach-mx2
mach-mx3
mach-netx
mach-ns9xxx
mach-omap1
mach-omap2 ARM: OMAP: board-omap3beagle: set i2c-3 to 100kHz 2009-03-04 10:07:42 -08:00
mach-orion5x [ARM] orion5x: pass dram mbus data to xor driver 2009-03-03 17:59:43 -05:00
mach-pnx4008
mach-pxa
mach-realview
mach-rpc Add i2c_board_info for RiscPC PCF8583 2009-02-24 19:19:50 +01:00
mach-s3c24a0/include/mach
mach-s3c2400
mach-s3c2410
mach-s3c2412
mach-s3c2440
mach-s3c2442
mach-s3c2443
mach-s3c6400
mach-s3c6410 [ARM] SMDK6410: Declare iodesc table static 2009-02-26 23:21:49 +00:00
mach-sa1100
mach-shark
mach-versatile
mach-w90x900
mm [ARM] Fix virtual to physical translation macro corner cases 2009-03-12 23:09:09 +00:00
nwfpe
oprofile
plat-iop
plat-mxc
plat-omap ARM: OMAP: Allow I2C bus driver to be compiled as a module 2009-03-04 10:07:41 -08:00
plat-orion
plat-s3c
plat-s3c24xx
plat-s3c64xx Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into s3c-fixes 2009-03-06 17:13:52 +00:00
tools [ARM] update mach-types 2009-03-12 21:33:06 +00:00
vfp
Kconfig
Kconfig-nommu
Kconfig.debug
Makefile