kernel-fxtec-pro1x/arch/arm
Mel Gorman e80d6a2482 [ARM] Skip memory holes in FLATMEM when reading /proc/pagetypeinfo
Ordinarily, memory holes in flatmem still have a valid memmap and is safe
to use. However, an architecture (ARM) frees up the memmap backing memory
holes on the assumption it is never used. /proc/pagetypeinfo reads the
whole range of pages in a zone believing that the memmap is valid and that
pfn_valid will return false if it is not. On ARM, freeing the memmap breaks
the page->zone linkages even though pfn_valid() returns true and the kernel
can oops shortly afterwards due to accessing a bogus struct zone *.

This patch lets architectures say when FLATMEM can have holes in the
memmap. Rather than an expensive check for valid memory, /proc/pagetypeinfo
will confirm that the page linkages are still valid by checking page->zone
is still the expected zone. The lookup of page_zone is safe as there is a
limited range of memory that is accessed when calling page_zone.  Even if
page_zone happens to return the correct zone, the impact is that the counters
in /proc/pagetypeinfo are slightly off but fragmentation monitoring is
unlikely to be relevant on an embedded system.

Reported-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Mel Gorman <mel@csn.ul.ie>
Tested-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-08-27 20:09:28 +01:00
..
boot [ARM] 5194/1: update .gitignore 2008-08-12 19:54:09 +01:00
common [ARM] dma-mapping: provide sync_range APIs 2008-08-10 14:05:14 +01:00
configs [ARM] orion5x: update defconfig to v2.6.27-rc4 2008-08-22 13:21:15 -04:00
include/asm [ARM] use the new byteorder headers 2008-08-27 20:05:27 +01:00
kernel Merge master.kernel.org:/home/rmk/linux-2.6-arm 2008-08-16 16:48:45 -07:00
lib [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-aaec2000 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-at91 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-clps711x [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-clps7500 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-davinci [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-ebsa110 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-ep93xx [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-footbridge [ARM] use bcd2bin/bin2bcd 2008-08-27 20:07:59 +01:00
mach-h720x [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-imx [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-integrator [ARM] fix impd1.c build warning 2008-08-18 13:52:07 +01:00
mach-iop13xx [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-iop32x [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-iop33x [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-ixp4xx [ARM] 5208/1: fsg-setup.c fixes 2008-08-19 16:56:42 +01:00
mach-ixp23xx [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-ixp2000 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-kirkwood [ARM] Kirkwood: instantiate the orion_spi driver in the platform code 2008-08-09 15:38:18 +02:00
mach-ks8695 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-l7200 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-lh7a40x [ARM] 5191/1: ARM: remove CVS keywords 2008-08-16 20:01:18 +01:00
mach-loki [ARM] Move include/asm-arm/plat-orion to arch/arm/plat-orion/include/plat 2008-08-09 13:44:58 +02:00
mach-msm [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-mv78xx0 [ARM] Move include/asm-arm/plat-orion to arch/arm/plat-orion/include/plat 2008-08-09 13:44:58 +02:00
mach-mx2 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-mx3 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-netx [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-ns9xxx [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-omap1 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-omap2 usb: musb: pass configuration specifics via pdata 2008-08-13 17:33:01 -07:00
mach-orion5x [ARM] Orion: register UART1 on QNAP TS-209 and TS-409 2008-08-21 22:15:17 -04:00
mach-pnx4008 [ARM] fix pnx4008 build errors 2008-08-08 15:13:27 +01:00
mach-pxa [ARM] 5225/1: zaurus: Register I2C controller for audio codecs 2008-08-26 16:26:25 +01:00
mach-realview [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-rpc [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-s3c2400 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-s3c2410 [ARM] S3C2443: Fix the S3C2443 clock register definitions 2008-08-26 22:56:22 +01:00
mach-s3c2412 [ARM] JIVE: Fix the spi bus numbering 2008-08-26 22:56:22 +01:00
mach-s3c2440 Merge http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm into for-rmk 2008-08-08 21:10:12 +01:00
mach-s3c2442 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-s3c2443 [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-sa1100 [ARM] 5191/1: ARM: remove CVS keywords 2008-08-16 20:01:18 +01:00
mach-shark [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mach-versatile [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
mm [ARM] add proc-macros.S include to proc-arm940 and proc-arm946 2008-08-12 19:54:08 +01:00
nwfpe [ARM] move include/asm-arm to arch/arm/include/asm 2008-08-02 21:32:35 +01:00
oprofile [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
plat-iop [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
plat-mxc [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
plat-omap removed unused #include <linux/version.h>'s 2008-08-23 12:14:12 -07:00
plat-orion [ARM] Move include/asm-arm/plat-orion to arch/arm/plat-orion/include/plat 2008-08-09 13:44:58 +02:00
plat-s3c
plat-s3c24xx [ARM] S3C24XX: pwm.c: stop debugging output 2008-08-26 22:56:21 +01:00
tools [ARM] update mach-types 2008-08-16 09:30:05 +01:00
vfp smp_call_function: get rid of the unused nonatomic/retry argument 2008-06-26 11:24:35 +02:00
Kconfig [ARM] Skip memory holes in FLATMEM when reading /proc/pagetypeinfo 2008-08-27 20:09:28 +01:00
Kconfig-nommu
Kconfig.debug
Makefile [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00