summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack F Vogel <jfv@FreeBSD.org>2011-01-25 22:25:50 +0000
committerJack F Vogel <jfv@FreeBSD.org>2011-01-25 22:25:50 +0000
commit05707fd7918674aee46db3eb20615833527e41f3 (patch)
tree14b19f5e6bb0e157d3345a83b784c91c8fcf000c
parent994c40b46a9a1b0c92ad19f42b751308a15d2b82 (diff)
Notes
-rw-r--r--sys/dev/e1000/if_em.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index 4cfda7f19c3b..103f66a078be 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -93,7 +93,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
@@ -1909,14 +1909,23 @@ em_xmit(struct tx_ring *txr, struct mbuf **m_headp)
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);
}
@@ -2206,7 +2215,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);
}