diff options
author | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2009-02-11 16:57:32 +0000 |
---|---|---|
committer | Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> | 2009-02-11 16:57:32 +0000 |
commit | 7dde1da9a7cbedcdd6d75a935c04f09f9b7cdc4c (patch) | |
tree | 13b54bd986ea74ed660812277e3aa5dce60044ad | |
parent | 9dff094efdeb0d48d4ca25fe98789a6dd1e4fc0f (diff) |
Print a loud warning message if we run out of MTRRs.
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
-rw-r--r-- | src/cpu/x86/mtrr/mtrr.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/cpu/x86/mtrr/mtrr.c b/src/cpu/x86/mtrr/mtrr.c index 840f9d3909..2e45c4818c 100644 --- a/src/cpu/x86/mtrr/mtrr.c +++ b/src/cpu/x86/mtrr/mtrr.c @@ -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; } |