Re: Oops writing to /dev/cpu/microcode in 2.4.0-test2-pre4

From: Tigran Aivazian (tigran@veritas.com)
Date: Tue Jun 20 2000 - 15:26:40 EST


Hi,

a) when you send an oops on a particular piece of kernel code, please
check the MAINTAINERS file and at least cc your mail to the maintainer.
I could have missed your mail easily otherwise.

b) this has been fixed ages ago. Just use recent enough kernel
(2.4.0-test1-ac13 or later).

and what do you mean "test2"? - there is no such thing, the latest kernel
now is 2.4.0-test1-ac22 or so (until it all gets sync'd with official
Linus Torvalds' kernel)

if you want the fix immediately and can't change the kernel, just apply
this patch to arch/i386/kernel/microcode.c:

Regards,
Tigran

diff -ur linux/arch/i386/kernel/microcode.c work/arch/i386/kernel/microcode.c
--- linux/arch/i386/kernel/microcode.c Fri Jun 9 19:05:09 2000
+++ work/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");
                                 rdmsr(0x8B, val[0], val[1]);
 
                                 req->err = 0;

On Tue, 20 Jun 2000, Chris Meadors wrote:

> I have setup in my init script the Pentium microcode updater. Upon
> booting 2.4.0-test2-pre4 I got the following (decoded) oops:
>
>
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000008
> c0108f98
> *pde = 00000000
> Oops: 0000
> CPU: 0
> EIP: 0010:[<c0108f98>]
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00010246
> eax: c0318c34 ebx: 00000000 ecx: 0000008b edx: 0000002a
> esi: 00000014 edi: 00000010 ebp: 00000001 esp: c1317f58
> ds: 0018 es: 0018 ss: 0018
> Process microcode_ctl (pid: 18, stackpage=c1317000)
> Stack: 00000000 00018000 c1315000 c7f439e0 00008000 00000652 c0108e0d
> c0318c34
> 00000000 00018000 c1315000 c7f439e0 00000000 c0109115 c7f439e0
> ffffffea
> 00000000 c0130cac c7f439e0 bf85daec 00018000 c7f43a00 c1316000
> 4000ab44
> Call Trace: [<c0108e0d>] [<c0109115>] [<c0130cac>] [<c010b6d0>]
> Code: 8b 43 08 50 52 56 6a 00 68 40 9d 23 c0 e8 72 13 01 00 83 c4
>
> >>EIP; c0108f98 <do_update_one+138/160> <=====
> Trace; c0108e0d <do_microcode_update+19/6c>
> Trace; c0109115 <microcode_write+d5/110>
> Trace; c0130cac <sys_write+c0/e0>
> Trace; c010b6d0 <system_call+34/38>
> Code; c0108f98 <do_update_one+138/160>
> 00000000 <_EIP>:
> Code; c0108f98 <do_update_one+138/160> <=====
> 0: 8b 43 08 mov 0x8(%ebx),%eax <=====
> Code; c0108f9b <do_update_one+13b/160>
> 3: 50 push %eax
> Code; c0108f9c <do_update_one+13c/160>
> 4: 52 push %edx
> Code; c0108f9d <do_update_one+13d/160>
> 5: 56 push %esi
> Code; c0108f9e <do_update_one+13e/160>
> 6: 6a 00 push $0x0
> Code; c0108fa0 <do_update_one+140/160>
> 8: 68 40 9d 23 c0 push $0xc0239d40
> Code; c0108fa5 <do_update_one+145/160>
> d: e8 72 13 01 00 call 11384 <_EIP+0x11384> c011a31c
> <printk+0/15c>
> Code; c0108faa <do_update_one+14a/160>
> 12: 83 c4 00 add $0x0,%esp
>
>
>

-
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 23 2000 - 21:00:20 EST