Skip to contentSkip to conversation

pae >4gb fix #1

PATCH New Gerd Knorr 1 participant 1 message Aug 5, 2005 x86

lore
Share & tools
lore

Gerd Knorr

author
#0 lore raw

PATCH 1/1 pae >4gb fix #1

Hi,

mpt size calculation is wrong, we don't allocate enougth 2MB pages and pagefault in the memset which clears the mpt.

Gerd

arch/x86/x86_32/mm.c renamed from arch/x86/x86_32/mm.c.pae +3 -1
@@ -98,7 +98,9 @@
      * installed, but at least 4MB to cover 4GB address space.  This is needed 
      * to make PCI I/O memory address lookups work in guests.
      */
-    if ( (mpt_size = max_page * 4) < (4*1024*1024) )
+#define L2_MASK ((1<<L2_PAGETABLE_SHIFT)-1)
+    mpt_size = (max_page * 4 + L2_MASK) & ~L2_MASK;
+    if (mpt_size < 4*1024*1024)
         mpt_size = 4*1024*1024;
     for ( i = 0; i < (mpt_size >> L2_PAGETABLE_SHIFT); i++ )
     {