From 70d361e5f89cdbde2cf8ef64d5563fd1b34c6d4c Mon Sep 17 00:00:00 2001 From: Li-Ta Lo Date: Mon, 29 Jan 2001 02:12:35 +0000 Subject: [PATCH] fix some rounding problem --- src/cpu/p6/mtrr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cpu/p6/mtrr.c b/src/cpu/p6/mtrr.c index 91a0037df1..8ba8606caa 100644 --- a/src/cpu/p6/mtrr.c +++ b/src/cpu/p6/mtrr.c @@ -201,10 +201,10 @@ void intel_set_mtrr(unsigned long rambase, unsigned long ramsizeK) while (ramsizeK != 0 && reg <= 6) { intel_post(0x60 + reg); - range_wb = 1 << (fms(ramsizeK) + 1); + range_wb = 1 << (fms(ramsizeK - 1) + 1); range_uc = range_wb - ramsizeK; - if ((ramsizeK % range_uc) == 0) { + if ((range_uc == 0) || ((ramsizeK % range_uc) == 0)) { DBG("Setting variable MTRR %d, base: %4dMB, range: %4dMB, type: WB\n", reg, rambase >> 10, range_wb >> 10); intel_set_var_mtrr(reg++, rambase * 1024, range_wb * 1024,