On Thu, Jul 23, 2009 at 05:31:57PM -0400, Pavel Roskin wrote: > On Thu, 2009-07-23 at 11:38 +0200, Vladimir 'phcoder' Serbinenko wrote: > > Hello. According to xen some BIOSes update only lower 32-bit in mmap > > entries. To workaround this and not get high values in memory map > > zero-fill before calling BIOS > > I think the fix belongs to grub_get_mmap_entry(), not to all of its > callers. Something like this: > > diff --git a/kern/i386/pc/startup.S b/kern/i386/pc/startup.S > index be258fb..5468ba8 100644 > --- a/kern/i386/pc/startup.S > +++ b/kern/i386/pc/startup.S > @@ -997,6 +997,14 @@ FUNCTION(grub_get_mmap_entry) > /* push ADDR */ > pushl %eax > > + /* clear the request area, buggy BIOSes may not clear it */ > + xor %edi, %edi > + movl %edi, 4(%eax) > + movl %edi, 8(%eax) > + movl %edi, 12(%eax) > + movl %edi, 16(%eax) > + movl %edi, 20(%eax)
This effectively hardcodes sizeof(entry). Can we avoid it? -- Robert Millan The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and how) you may access your data; but nobody's threatening your freedom: we still allow you to remove your data and not access it at all." _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel