Print a loud warning message if we run out of MTRRs.
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Wed, 11 Feb 2009 16:57:32 +0000 (16:57 +0000)
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Wed, 11 Feb 2009 16:57:32 +0000 (16:57 +0000)
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Myles Watson <mylesgw@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3937 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/cpu/x86/mtrr/mtrr.c

index 840f9d3909577bcd667f28f6e7fccea4086bb0fc..2e45c4818ceee5abb564cc51d6120d6192f53a60 100644 (file)
@@ -228,7 +228,12 @@ static unsigned int range_to_mtrr(unsigned int reg,
        unsigned long range_startk, unsigned long range_sizek,
        unsigned long next_range_startk, unsigned char type, unsigned address_bits)
 {
-       if (!range_sizek || (reg >= BIOS_MTRRS)) {
+       if (!range_sizek) {
+               printk_debug("range_to_mtrr called for empty range\n");
+               return reg;
+       }
+       if (reg >= BIOS_MTRRS) {
+               printk_err("Running out of variable MTRRs!\n");
                return reg;
        }
        while(range_sizek) {
@@ -249,8 +254,10 @@ static unsigned int range_to_mtrr(unsigned int reg,
                set_var_mtrr(reg++, range_startk, sizek, type, address_bits);
                range_startk += sizek;
                range_sizek -= sizek;
-               if (reg >= BIOS_MTRRS)
+               if (reg >= BIOS_MTRRS) {
+                       printk_err("Running out of variable MTRRs!\n");
                        break;
+               }
        }
        return reg;
 }