:Dirk König wrote:
:> Fatal trap 12: page fault while in kernel mode
:> fault virtual address        = 0xeb761
:> fault code           = supervisor read, page not present
:> instruction pointer  = 0x8:0xc00eb647
:> stack pointer                = 0x10:0xc0758a00
:> frame pointer                = 0x10:0xc0758a00
:> code segment                 = base 0x0, limit 0xfffff, type 0x1b
:>                      = DPL 0, pres 1, def 32 1, gran 1
:> processor eflags     = interrupt enabled, resume, IOPL = 0
:> current process      = 0 (swapper)
:> current threat               = pri 12
:> 
:> kernel: type 12 trap, code=0
:> Stopped at   0xc00eb647:     cmpb    %cs:0x1(%esi),%bl
:
:this looks like BIOS code to me.  for some reason it is mapped at 0xc00eb000, 
but %esi is (of course) 0xeb761.  it is missing 0xc0000000 bytes :)  maybe the 
bios needs to be mapped into a lower memory area?
:
:cheers
:  simon

    That is very odd.  It is the BIOS area.  When it makes a BIOS call the
    BIOS is limited to VM86 mode so it doesn't see the full pc, just the 
    16 bit version (and it runs segment-relative of course).

    But the elfags and segment registers are not indicating that it was
    running in VM86 mode, so the kernel wasn't *trying* to run BIOS code
    at that time.

    The failure is somewhere else and it would probably take some sleuthing
    on the kernel stack to find it.

                                        -Matt
                                        Matthew Dillon 
                                        <[EMAIL PROTECTED]>

Reply via email to