]> err.no Git - linux-2.6/commitdiff
x86: fix WARN_ON() message: teach page_is_ram() about the special 4Kb bios data page
authorArjan van de Ven <arjan@linux.intel.com>
Mon, 18 Feb 2008 17:54:33 +0000 (09:54 -0800)
committerIngo Molnar <mingo@elte.hu>
Tue, 19 Feb 2008 15:18:34 +0000 (16:18 +0100)
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>
arch/x86/mm/ioremap.c

index 9f42d7e9c15829431ed31c90fd993750adf9791f..7fb6eff644b3abb8dc407de03b40bf04c458e0c6 100644 (file)
@@ -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: