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

From: Philipp Rumpf (prumpf@puffin.external.hp.com)
Date: Fri Jun 09 2000 - 22:06:55 EDT

  • Next message: Jerry Burong: "Re: 2.4.0-test1-ac11 does not compile"

    Rather obvious one :)

    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 ?

            Philipp Rumpf

    -
    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 : Fri Jun 09 2000 - 22:12:30 EDT