Messages in this thread | | | Date | Sun, 5 Oct 2008 14:42:35 +0200 | From | "Vegard Nossum" <> | Subject | Re: kmemcheck: Caught 32-bit read from uninitialized memory (f6038ec0) |
| |
On Mon, Sep 29, 2008 at 3:14 PM, Ingo Molnar <mingo@elte.hu> wrote: > > another crash is below - config attached. > > Ingo > > -----------------> > initcall 0xc08eabf0 returned 0 after 7 msecs > calling 0xc08eae70 @ 1 > PnPBIOS: Scanning system for PnP BIOS support... > PnPBIOS: Found PnP BIOS installation structure at 0xc00fc550 > PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0xc580, dseg 0xf0000 > BUG: unable to handle kernel paging request at 0000c6ef
Thanks, I can reproduce it. And that's very interesting. Look at the faulting address and the line just above:
PnP BIOS version 1.0, entry 0xf0000:0xc580
When I run it, I get something similar:
PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0x67ba, dseg 0xf0000 BUG: unable to handle kernel paging request at 000068ac
Enabling debug information also gives me the location of the crash. It happens in kmemcheck's opcode decoder, when we dereference regs->eip. Is it possible that PnPBIOS is executing some code which is located at these weird addresses (like 16-bit code) and requires a different segment register?
Maybe we should just check regs->flags to make sure that we are not in VM86 mode or similar. Will experiment a bit with it. Thanks.
Vegard
-- "The animistic metaphor of the bug that maliciously sneaked in while the programmer was not looking is intellectually dishonest as it disguises that the error is the programmer's own creation." -- E. W. Dijkstra, EWD1036
| |