bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-hurd] oskit 20000901 boots, however, crashes on kernel page fault


From: Neal H Walfield
Subject: [Bug-hurd] oskit 20000901 boots, however, crashes on kernel page fault
Date: Tue, 19 Sep 2000 10:34:13 -0500
User-agent: Mutt/1.2i

Hi,

As suggested by Mark and Marcus, I added the function osenv_intr_save_disable
to oskit/osenv_synch.c.  This was all that was required to get the kernel to
compile.

It now boots and crashes in oskit-20000901/linux/dev/init.c, line 129 due to
a kernel page fault.  Here is a snipit of the code:

124     /*
125      * Initialize drive info.
126      */
127     if (osenv_mem_map_phys(0, PAGE_SIZE, &kaddr, 0))
128             panic("%s:%d: unable to map phys memory", __FILE__, __LINE__);
129     x = *((unsigned *)(kaddr + 0x104));
130     addr = ((x >> 12) & 0xFFFF0) + (x & 0xFFFF);
131     if (osenv_mem_map_phys(trunc_page(addr), PAGE_SIZE, (void **)&x, 0))
132             panic("%s:%d: unable to map phys memory", __FILE__, __LINE__);

Thus, it appears to be crashing when it dereferences kaddr + 0x104.
Having done a bit of snooping, I know that kernel_virtual_start == 0xc0000000
and the page fault linear address that it crashes on is 0xc000104.  Therefore,
this should be valid from pmap_bootstrap mappings(?) called from
oskit/x86/main.c

I have diffed the init.c from 20000202 with the one from 20000901 and the only
difference is the addition of line 86:

        linux_softintr_init();

This appears to be `ok' as it looks like it is functionality removed from
oskit_linux_init() (called on line 85) and placed into its own function.

Any ideas?

Thanks,
-Neal

-- 
Neal H Walfield
University of Massachusetts at Lowell
neal@walfield.org or nwalfiel@cs.uml.edu


reply via email to

[Prev in Thread] Current Thread [Next in Thread]