Date: Tue, 25 Jan 2011 22:55:50 +0000 (UTC) From: Jack F Vogel <jfv@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r217862 - releng/7.4/sys/dev/e1000 Message-ID: <201101252255.p0PMto4h055340@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101252255.p0PMto4h055340>