Author: jfv
Date: Sat Jan 22 20:00:24 2011
New Revision: 217723
URL: http://svn.freebsd.org/changeset/base/217723

Log:
  MFC rev 217295

Modified:
  stable/7/sys/dev/e1000/if_em.c
Directory Properties:
  stable/7/sys/   (props changed)
  stable/7/sys/cddl/contrib/opensolaris/   (props changed)
  stable/7/sys/contrib/dev/acpica/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)

Modified: stable/7/sys/dev/e1000/if_em.c
==============================================================================
--- stable/7/sys/dev/e1000/if_em.c      Sat Jan 22 19:25:49 2011        
(r217722)
+++ stable/7/sys/dev/e1000/if_em.c      Sat Jan 22 20:00:24 2011        
(r217723)
@@ -90,7 +90,7 @@ int   em_display_debug_stats = 0;
 /*********************************************************************
  *  Driver version:
  *********************************************************************/
-char em_driver_version[] = "7.1.8";
+char em_driver_version[] = "7.1.9";
 
 /*********************************************************************
  *  PCI Device ID Table
@@ -1788,14 +1788,23 @@ em_xmit(struct tx_ring *txr, struct mbuf
                error = bus_dmamap_load_mbuf_sg(txr->txtag, map,
                    *m_headp, segs, &nsegs, BUS_DMA_NOWAIT);
 
-               if (error) {
+               if (error == ENOMEM) {
+                       adapter->no_tx_dma_setup++;
+                       return (error);
+               } else if (error != 0) {
                        adapter->no_tx_dma_setup++;
                        m_freem(*m_headp);
                        *m_headp = NULL;
                        return (error);
                }
+
+       } else if (error == ENOMEM) {
+               adapter->no_tx_dma_setup++;
+               return (error);
        } else if (error != 0) {
                adapter->no_tx_dma_setup++;
+               m_freem(*m_headp);
+               *m_headp = NULL;
                return (error);
        }
 
@@ -2077,7 +2086,6 @@ hung:
            txr->me, txr->tx_avail, txr->next_to_clean);
        ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
        adapter->watchdog_events++;
-       EM_TX_UNLOCK(txr);
        em_init_locked(adapter);
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to