svn commit: r316482 - head/sys/dev/tsec
Justin Hibbits
jhibbits at FreeBSD.org
Tue Apr 4 02:55:56 UTC 2017
Author: jhibbits
Date: Tue Apr 4 02:55:55 2017
New Revision: 316482
URL: https://svnweb.freebsd.org/changeset/base/316482
Log:
Don't calltsec_receive_intr_locked() from the error interrupt handler.
The tsec_error_intr_locked() is called with the global lock owned (e.g.
the transmit and the receive lock are both owned). We must not call
tsec_receive_intr_locked() while owning the transmit lock. The normal
receive interrupt takes care that frames are received, this is none of
the business of the error interrupt.
Submitted by: Sebastian Huber <sebastian.huber_AT_embedded-brains.de>
Modified:
head/sys/dev/tsec/if_tsec.c
Modified: head/sys/dev/tsec/if_tsec.c
==============================================================================
--- head/sys/dev/tsec/if_tsec.c Tue Apr 4 02:48:27 2017 (r316481)
+++ head/sys/dev/tsec/if_tsec.c Tue Apr 4 02:55:55 2017 (r316482)
@@ -1542,9 +1542,6 @@ tsec_error_intr_locked(struct tsec_softc
/* Check for discarded frame due to a lack of buffers */
if (eflags & TSEC_IEVENT_BSY) {
if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1);
-
- /* Get data from RX buffers */
- tsec_receive_intr_locked(sc, count);
}
if (ifp->if_flags & IFF_DEBUG)
More information about the svn-src-all
mailing list