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>