[SeaBIOS] [PATCH] seabios: increase smp_mtrr array size

Kevin O'Connor kevin at koconnor.net
Sat Jul 30 01:23:23 CEST 2011


On Fri, Jul 29, 2011 at 07:40:51PM -0300, Marcelo Tosatti wrote:
> 
> Windows Server 2008 checked build complains about lack of consistency
> between MTRR MSRs in SMP guests.
> 
> Problem is the smp_mtrr array is not large enough to hold all MSRs (31
> entries with current qemu/kvm implementations).
> 
> Increase it to 32.

Thanks.  I applied your patch and the patch below as well.

-Kevin


diff --git a/src/smp.c b/src/smp.c
index 2317d36..8c077a1 100644
--- a/src/smp.c
+++ b/src/smp.c
@@ -24,8 +24,10 @@ void
 wrmsr_smp(u32 index, u64 val)
 {
     wrmsr(index, val);
-    if (smp_mtrr_count >= ARRAY_SIZE(smp_mtrr))
+    if (smp_mtrr_count >= ARRAY_SIZE(smp_mtrr)) {
+        warn_noalloc();
         return;
+    }
     smp_mtrr[smp_mtrr_count].ecx = index;
     smp_mtrr[smp_mtrr_count].eax = val;
     smp_mtrr[smp_mtrr_count].edx = val >> 32;



More information about the SeaBIOS mailing list