Date: Wed, 16 Oct 2002 01:37:33 +0900 (JST) From: Hirofumi SHINKE <shinke@newhouse.rim.or.jp> To: freebsd-stable@freebsd.org Subject: Kernel crashes on isa0 initialize Message-ID: <20021016.013733.41626224.shinke@newhouse.rim.or.jp>
next in thread | raw e-mail | index | archive | help
I have installed FreeBSD 4.7-stable to may laptop pc.
It is an old ISA based machine.
I found 4.7-stable kernel crashes in fatal trap 12 at boot time
on the machine, while 4.7-RC kernel worked well.
So I examined differences between the versions
and found new implementation of nexus_print_all_resources()
in sys/i386/i386/nexus.c caused the trouble.
On my machine, DEVTONX(dev) at first line of the function
returns null pointer for device isa0, and then a pointer
reference in the next line leads to page fault.
I could workarounded the problem as bellow, but i wonder
what's the right way?
Which is the case whether
- my isa controller is broken or buggy
- or that is bug accompanied by recent changes on kernl ?
*** nexus.c.bk Mon Oct 14 15:12:41 2002
--- nexus.c Mon Oct 14 16:40:33 2002
***************
*** 257,265 ****
static int
nexus_print_all_resources(device_t dev)
{
- struct nexus_device *ndev = DEVTONX(dev);
- struct resource_list *rl = &ndev->nx_resources;
int retval = 0;
if (SLIST_FIRST(rl))
retval += printf(" at");
--- 257,270 ----
static int
nexus_print_all_resources(device_t dev)
{
int retval = 0;
+ struct nexus_device *ndev = DEVTONX(dev);
+ struct resource_list *rl;
+
+ if( ! ndev ){
+ retval += printf( "(no rerource infomation)");
+ return retval;
+ }
if (SLIST_FIRST(rl))
retval += printf(" at");
----
Hirofumi SHINKE, Yokohama, Japan
shinke@newhouse.rim.or.jp
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021016.013733.41626224.shinke>
