Crash in bge_newbuf_std on 5.4 - need help with debugging

Olafur Osvaldsson oli at isnic.is
Fri Aug 19 10:46:49 GMT 2005


Hi,
Maybe someone more experienced than me could help me out with this...


(kgdb) bt
#0  doadump () at pcpu.h:159
#1  0xc060c5ef in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:410
#2  0xc060c915 in panic (fmt=0xc07fd250 "%s") at /usr/src/sys/kern/kern_shutdown.c:566
#3  0xc07b26d4 in trap_fatal (frame=0xe67d8bbc, eva=3217031168)
    at /usr/src/sys/i386/i386/trap.c:817
#4  0xc07b2417 in trap_pfault (frame=0xe67d8bbc, usermode=0, eva=3217031168)
    at /usr/src/sys/i386/i386/trap.c:735
#5  0xc07b2051 in trap (frame=
      {tf_fs = -1067384808, tf_es = -1018167280, tf_ds = -1064501232, tf_edi = -1016803328, tf_esi = -426416128, tf_ebp = -427979700, tf_isp = -427979800, tf_ebx = -1012528640, tf_edx = 0, tf_ecx = 2, tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip = -1065755687, tf_cs = 8, tf_eflags = 66118, tf_esp
= -1018649728, tf_ss = -1017978880}) at /usr/src/sys/i386/i386/trap.c:425
#6  0xc079fdba in calltrap () at /usr/src/sys/i386/i386/exception.s:140
#7  0xc0610018 in tdsigwakeup (td=0xc3a60a00, sig=0, action=0xc364d000)
    at /usr/src/sys/kern/kern_sig.c:1972
#8  0xc04d5928 in bge_newbuf_std (sc=0xc364d000, i=192, m=0x0) at /usr/src/sys/dev/bge/if_bge.c:915
#9  0xc04d883c in bge_rxeof (sc=0xc364d000) at /usr/src/sys/dev/bge/if_bge.c:2768
#10 0xc04d8c60 in bge_intr (xsc=0xc364d000) at /usr/src/sys/dev/bge/if_bge.c:2975
#11 0xc05f8599 in ithread_loop (arg=0xc3480e00) at /usr/src/sys/kern/kern_intr.c:547
#12 0xc05f7635 in fork_exit (callout=0xc05f8440 <ithread_loop>, arg=0xc3480e00, frame=0xe67d8d48)
    at /usr/src/sys/kern/kern_fork.c:791
#13 0xc079fe1c in fork_trampoline () at /usr/src/sys/i386/i386/exception.s:209
(kgdb) up 8
#8  0xc04d5928 in bge_newbuf_std (sc=0xc364d000, i=192, m=0x0) at /usr/src/sys/dev/bge/if_bge.c:915
915             error = bus_dmamap_load(sc->bge_cdata.bge_mtag,
(kgdb) list
910                     m_adj(m_new, ETHER_ALIGN);
911             sc->bge_cdata.bge_rx_std_chain[i] = m_new;
912             r = &sc->bge_ldata.bge_rx_std_ring[i];
913             ctx.bge_maxsegs = 1;
914             ctx.sc = sc;
915             error = bus_dmamap_load(sc->bge_cdata.bge_mtag,
916                 sc->bge_cdata.bge_rx_std_dmamap[i], mtod(m_new, void *),
917                 m_new->m_len, bge_dma_map_addr, &ctx, BUS_DMA_NOWAIT);
918             if (error || ctx.bge_maxsegs == 0) {
919                     if (m == NULL)
(kgdb) print sc->bge_cdata.bge_mtag
$6 = 0xc3628700
(kgdb) print sc->bge_cdata.bge_rx_std_dmamap[i]
$7 = 0x0
(kgdb) print i
$8 = 192
(kgdb) print m_new
$9 = (struct mbuf *) 0xc3a60a00
(kgdb) print m_new->m_len
There is no member named m_len.
(kgdb) print bge_dma_map_addr
$10 = {void (void *, bus_dma_segment_t *, int, int)} 0xc04d5118 <bge_dma_map_addr>
(kgdb) print ctx
$11 = {sc = 0xc364d000, bge_busaddr = 3866987660, bge_flags = 53549, bge_idx = 131,
  bge_maxsegs = 1, bge_ring = 0xc3508180}


The things that strike me there is the lack of "m_new->m_len" and the NULL in the second
parameter...I don't know enaugh to say if either is OK.

Any ideas or suggestions on the next step?

/Oli

-- 
Olafur Osvaldsson
Systems Administrator
Internet a Islandi hf.
Tel:   +354 525-5291
Email: oli at isnic.is
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20050819/c7b9ee0d/attachment.bin


More information about the freebsd-hackers mailing list