panic if isapnp enabled

KIYOHARA Takashi <[email protected]> Sat, 19 Jan 2008 14:31:06 +0900 (JST)
Newsgroups gmane.os.netbsd.ports.prep
Message-ID <[email protected]>
Hi! all,


I forgot to issue this patch...

I enabled isapnp for my kernel.  It kernel panics in sys/dev/isa/isadma.c
::_isa_dmainit().  This reason was called match/attach of pnpbus from
config_found_ia() for "cpu" in prep/mainbus.c::mainbus_attach().
# Sorry I'm beginning to forgot...  X-<

I apologize if already fixed.  :-)

Thanks,
--
kiyohara
pnpbus.diff (text/plain, 1.7 KB)
Index: sys/arch/prep/pnpbus/pnpbus.c
===================================================================
RCS file: /cvsroot/src/sys/arch/prep/pnpbus/pnpbus.c,v
retrieving revision 1.7
diff -u -r1.7 pnpbus.c
--- sys/arch/prep/pnpbus/pnpbus.c	17 Oct 2007 19:56:52 -0000	1.7
+++ sys/arch/prep/pnpbus/pnpbus.c	2 Jan 2008 10:20:25 -0000
@@ -75,6 +75,10 @@
 static int
 pnpbus_match(struct device *parent, struct cfdata *cf, void *aux)
 {
+	struct pnpbus_attach_args *paa = aux;
+
+	if (strcmp(paa->paa_name, pnpbus_cd.cd_name) != 0)
+		return (0);
 	return 1;
 }
 
Index: sys/arch/prep/pnpbus/pnpbusvar.h
===================================================================
RCS file: /cvsroot/src/sys/arch/prep/pnpbus/pnpbusvar.h,v
retrieving revision 1.4
diff -u -r1.4 pnpbusvar.h
--- sys/arch/prep/pnpbus/pnpbusvar.h	27 Oct 2006 19:52:51 -0000	1.4
+++ sys/arch/prep/pnpbus/pnpbusvar.h	2 Jan 2008 10:20:25 -0000
@@ -87,6 +87,7 @@
  * Bus attach arguments
  */
 struct pnpbus_attach_args {
+	const char *paa_name;
 	bus_space_tag_t paa_iot;		/* i/o space tag */
 	bus_space_tag_t paa_memt;		/* mem space tag */
 	isa_chipset_tag_t paa_ic;		/* ISA chipset tag */
Index: sys/arch/prep/prep/mainbus.c
===================================================================
RCS file: /cvsroot/src/sys/arch/prep/prep/mainbus.c,v
retrieving revision 1.27
diff -u -r1.27 mainbus.c
--- sys/arch/prep/prep/mainbus.c	17 Oct 2007 19:56:54 -0000	1.27
+++ sys/arch/prep/prep/mainbus.c	2 Jan 2008 10:20:25 -0000
@@ -158,6 +158,8 @@
 
 /* scan pnpbus first */
 #if NPNPBUS > 0
+	memset(&genppc_ict, 0, sizeof(genppc_ict));
+	mba.mba_paa.paa_name = "pnpbus";
 	mba.mba_paa.paa_iot = &genppc_isa_io_space_tag;
 	mba.mba_paa.paa_memt = &genppc_isa_mem_space_tag;
 	mba.mba_paa.paa_ic = &genppc_ict;