Port-vax archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: 5.0_BETA panics on 4000/500A
...
> qt0 at uba0 csr 174440 vec 764 ipl 17panic: Segv in kernel mode: pc
> 801fc895 addr 1c Stopped in pid 0.1 (system) at netbsd:trap+0x697:
> nop db> bt
> panic: Segv in kernel mode: pc %x addr %x
> Stack traceback :
> 0x802ef1fc: trap+0x697(0x802ef2c4)
> 0x802ef2c4: trap type=0x8 code=0x1c pc=0x801fc895 psl=0x170000
> 0x802ef290: strlen+0x9(0x1c)
> 0x802ef314: evcnt_attach_static+0x16(0x8b032408)
> 0x802ef334: evcnt_attach_dynamic+0x2c(0x8b032408,0x1,0,0x1c,0x8020d0a9)
> 0x802ef35c: qtattach+0x59(0x8b001ec4,0x8b0326ec,0x802ef440)
...
This seems to happen here, in qtattach():
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, ua->ua_evcnt,
device_xname(sc->sc_dev), "intr");
and for some reason device_xname(sc->sc_dev) appears to be 0x1c,
but should be a pointer to a string. I don't quite know; perhaps
this is an incompletely converted-to-device_t driver?
You could try this one, sc->sc_dev isn't initialized before the
next active line...
Index: if_qt.c
===================================================================
RCS file: /u/nb/src/sys/dev/qbus/if_qt.c,v
retrieving revision 1.15
diff -u -p -r1.15 if_qt.c
--- if_qt.c 16 Dec 2008 22:35:34 -0000 1.15
+++ if_qt.c 11 Jan 2009 01:05:43 -0000
@@ -261,7 +261,7 @@ qtattach(device_t parent, device_t self,
uba_intr_establish(ua->ua_icookie, ua->ua_cvec, qtintr, sc,
&sc->sc_intrcnt);
evcnt_attach_dynamic(&sc->sc_intrcnt, EVCNT_TYPE_INTR, ua->ua_evcnt,
- device_xname(sc->sc_dev), "intr");
+ device_xname(self), "intr");
sc->sc_dev = self;
sc->sc_uh = device_private(parent);
Regards,
- Havard
Home |
Main Index |
Thread Index |
Old Index