Re: Oops report on microcode.o linux-2.4.0-test1-ac11

From: Tigran Aivazian (tigran@veritas.com)
Date: Sat Jun 10 2000 - 05:23:50 EDT

  • Next message: Giacomo Catenazzi: "Re: [OT] Intel P6 Microcode ready for download"

    On Fri, 9 Jun 2000, Philipp Rumpf wrote:

    > Rather obvious one :)
    >

    wasn't obvious to me, I was wondering how could 'm' become NULL for "no
    apparent reason" :)

    > What happens is we execute cpuid as serializing, but don't tell gcc this
    > invalidates %eax, %ebx, %ecx, and %edx. This should be corrected by this
    > patch:
    >
    > diff -ur linux/arch/i386/kernel/microcode.c linux-prumpf/arch/i386/kernel/microcode.c
    > --- linux/arch/i386/kernel/microcode.c Fri Jun 9 19:05:09 2000
    > +++ linux-prumpf/arch/i386/kernel/microcode.c Fri Jun 9 19:06:19 2000
    > @@ -227,7 +227,7 @@
    > }
    >
    > wrmsr(0x79, (unsigned int)(m->bits), 0);
    > - __asm__ __volatile__ ("cpuid");
    > + __asm__ __volatile__ ("cpuid" : : : "ax", "bx", "cx", "dx", "cc");
    > rdmsr(0x8B, val[0], val[1]);
    >
    > req->err = 0;
    >
    >
    > Tigran, does this look okay to you ?
    >

    Simon, that is one bug off the list of your stuff to fix :)

    Just to clairfy - the oops here is due to m (which is %ebx) becoming 0
    so m->date results in 8(%ebx) which means dereferencing kernel virtual
    address=8.

    Philipp, thank you for the fix!

    Regards,
    Tigran

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Sat Jun 10 2000 - 05:29:49 EDT