svn commit: r217862 - releng/7.4/sys/dev/e1000
Jack F Vogel
jfv at FreeBSD.org
Tue Jan 25 22:55:50 UTC 2011
Author: jfv
Date: Tue Jan 25 22:55:50 2011
New Revision: 217862
URL: http://svn.freebsd.org/changeset/base/217862
Log:
MFC stable/7 r217723
- Pieces of the failure path in em_xmit got
mangled, correct it.
- local_timer had a leftover TX_UNLOCK without
a matching TX_LOCK in the error path, remove it.
Approved by: re (bz)
Modified:
releng/7.4/sys/dev/e1000/if_em.c
Directory Properties:
releng/7.4/sys/ (props changed)
releng/7.4/sys/cddl/contrib/opensolaris/ (props changed)
releng/7.4/sys/contrib/dev/acpica/ (props changed)
releng/7.4/sys/contrib/pf/ (props changed)
Modified: releng/7.4/sys/dev/e1000/if_em.c
==============================================================================
--- releng/7.4/sys/dev/e1000/if_em.c Tue Jan 25 22:35:35 2011 (r217861)
+++ releng/7.4/sys/dev/e1000/if_em.c Tue Jan 25 22:55:50 2011 (r217862)
@@ -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);
}
More information about the svn-src-all
mailing list