diff options
author | Arjan van de Ven <arjan@linux.intel.com> | 2008-02-18 09:54:33 -0800 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-02-19 16:18:34 +0100 |
commit | d8a9e6a51ec58486f850e3606e3fcb86b5b7da41 (patch) | |
tree | 78540cd48a23115db0c9b740076e3ab82bafd001 | |
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>
-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 9f42d7e9c15..7fb6eff644b 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c @@ -42,6 +42,15 @@ int page_is_ram(unsigned long pagenr) unsigned long addr, end; int i; + /* + * A special case is the first 4Kb of memory; + * This is a BIOS owned area, not kernel ram, but generally + * not listed as such in the E820 table. + */ + if (pagenr == 0) + return 0; + + for (i = 0; i < e820.nr_map; i++) { /* * Not usable memory: |