On Monday, November 28, 2011 5:37:27 pm Mike Andrews wrote:
> *Sometimes* when booting 9.0-RC2 on *some* of my machines, I'll get one of 
> the following two panics during multiuser startup, usually while running 
> the /usr/local/etc/rc.d scripts.  (The instruction pointer is always 
> exactly one of these two, and they look fairly related.)  If after two or 
> three reboots it manages to not panic, the system will run perfectly 
> stable.
> 
> For some probably-unrelated reason, the dump never finishes in either case.
> 
> First panic (note em0 warning before it):
> -----
> em0: discard frame w/o packet header

This is odd.  I see one bug that could possibly trigger this, but not on
x86:

Index: if_em.c
===================================================================
--- if_em.c     (revision 228074)
+++ if_em.c     (working copy)
@@ -4305,8 +4305,10 @@ em_rxeof(struct rx_ring *rxr, int count, int *done
 #ifndef __NO_STRICT_ALIGNMENT
                        if (adapter->max_frame_size >
                            (MCLBYTES - ETHER_ALIGN) &&
-                           em_fixup_rx(rxr) != 0)
-                               goto skip;
+                           em_fixup_rx(rxr) != 0) {
+                               sendmp = NULL;
+                               goto next_desc;
+                       }
 #endif
                        if (status & E1000_RXD_STAT_VP) {
                                sendmp->m_pkthdr.ether_vtag =
@@ -4318,9 +4320,6 @@ em_rxeof(struct rx_ring *rxr, int count, int *done
                        sendmp->m_pkthdr.flowid = rxr->msix;
                        sendmp->m_flags |= M_FLOWID;
 #endif
-#ifndef __NO_STRICT_ALIGNMENT
-skip:
-#endif
                        rxr->fmp = rxr->lmp = NULL;
                }
 next_desc:
@@ -4426,6 +4425,7 @@ em_fixup_rx(struct rx_ring *rxr)
                        adapter->dropped_pkts++;
                        m_freem(rxr->fmp);
                        rxr->fmp = NULL;
+                       rxr->lmp = NULL;
                        error = ENOMEM;
                }
        }


-- 
John Baldwin
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to