On Mon, Nov 29, 2010 at 09:54:55AM -0800, Jack Vogel wrote:

> Thanks for reporting that, will see it gets fixed!

More serious problem. I had experienced kernel panics for two em(4)-based
heavy loaded routers. I've checked PR database and found this PR:

http://www.freebsd.org/cgi/query-pr.cgi?pr=150920

I've found the same lack of NULL pointer check in em(4),
applied following patch to if_em.c and panics have gone.
It seems for me that new driver code still has this problem,
now this code resides inside em_rx_discard() function.
Please take a look.

--- if_em.c.orig        2010-11-02 15:45:56.000000000 +0600
+++ if_em.c     2010-11-08 14:24:46.000000000 +0600
@@ -4181,9 +4181,11 @@
                        ifp->if_ierrors++;
                        /* Reuse loaded DMA map and just update mbuf chain */
                        mp = rxr->rx_buffers[i].m_head;
+                       if(mp) {
                        mp->m_len = mp->m_pkthdr.len = MCLBYTES;
                        mp->m_data = mp->m_ext.ext_buf;
                        mp->m_next = NULL;
+                       }
                        if (adapter->max_frame_size <=
                            (MCLBYTES - ETHER_ALIGN))
                                m_adj(mp, ETHER_ALIGN);


Eugene Grosbein
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to