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