summaryrefslogtreecommitdiffstats
path: root/arch/x86/mm/ioremap.c
diff options
context:
space:
mode:
authorArjan van de Ven2008-02-18 18:54:33 +0100
committerIngo Molnar2008-02-19 16:18:34 +0100
commitd8a9e6a51ec58486f850e3606e3fcb86b5b7da41 (patch)
tree78540cd48a23115db0c9b740076e3ab82bafd001 /arch/x86/mm/ioremap.c
parentx86: i8259A: remove redundant irq_descinitialization (diff)
downloadkernel-qcow2-linux-d8a9e6a51ec58486f850e3606e3fcb86b5b7da41.tar.gz
kernel-qcow2-linux-d8a9e6a51ec58486f850e3606e3fcb86b5b7da41.tar.xz
kernel-qcow2-linux-d8a9e6a51ec58486f850e3606e3fcb86b5b7da41.zip
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/x86/mm/ioremap.c')
-rw-r--r--arch/x86/mm/ioremap.c9
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)
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: