diff options
author | Arjan van de Ven <arjan@linux.intel.com> | 2008-02-18 12:54:33 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-02-19 10:18:34 -0500 |
commit | d8a9e6a51ec58486f850e3606e3fcb86b5b7da41 (patch) | |
tree | 78540cd48a23115db0c9b740076e3ab82bafd001 /arch | |
parent | 7c6357da1185d286adaa4452d829ac9b27c4d12f (diff) |
x86: fix WARN_ON() message: teach page_is_ram() about the special 4Kb bios data page
This patch teaches page_is_ram() about the fact that the first
4Kb of memory are special on x86, even though the E820 table
normally doesn't exclude it.
This fixes the WARN_ON() reported by Laurent Riffard who was also
very helpful in diagnosing the issue.
[ mingo@elte.hu: we are working on doing this properly in the e820
space, but for 2.6.25 this is the better fix. ]
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/mm/ioremap.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index 9f42d7e9c158..7fb6eff644b3 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c | |||
@@ -42,6 +42,15 @@ int page_is_ram(unsigned long pagenr) | |||
42 | unsigned long addr, end; | 42 | unsigned long addr, end; |
43 | int i; | 43 | int i; |
44 | 44 | ||
45 | /* | ||
46 | * A special case is the first 4Kb of memory; | ||
47 | * This is a BIOS owned area, not kernel ram, but generally | ||
48 | * not listed as such in the E820 table. | ||
49 | */ | ||
50 | if (pagenr == 0) | ||
51 | return 0; | ||
52 | |||
53 | |||
45 | for (i = 0; i < e820.nr_map; i++) { | 54 | for (i = 0; i < e820.nr_map; i++) { |
46 | /* | 55 | /* |
47 | * Not usable memory: | 56 | * Not usable memory: |