summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-02-11 16:57:32 +0000
committerCarl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>2009-02-11 16:57:32 +0000
commit7dde1da9a7cbedcdd6d75a935c04f09f9b7cdc4c (patch)
tree13b54bd986ea74ed660812277e3aa5dce60044ad
parent9dff094efdeb0d48d4ca25fe98789a6dd1e4fc0f (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.c11
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;
}