aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/tsec
diff options
context:
space:
mode:
authorJustin Hibbits <jhibbits@FreeBSD.org>2017-04-04 02:55:55 +0000
committerJustin Hibbits <jhibbits@FreeBSD.org>2017-04-04 02:55:55 +0000
commit2fad65cfa0001b3611144b70ed03a6805973b87a (patch)
treecf785d49d5559b8296d372087e91742e88843b39 /sys/dev/tsec
parent2c0dbbcb8a7bb0a6b5b7394261617e0d62eda44c (diff)
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>
Notes
svn path=/head/; revision=316482
Diffstat (limited to 'sys/dev/tsec')
-rw-r--r--sys/dev/tsec/if_tsec.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/sys/dev/tsec/if_tsec.c b/sys/dev/tsec/if_tsec.c
index f97ef2a9afa7..37350fc0f3ab 100644
--- a/sys/dev/tsec/if_tsec.c
+++ b/sys/dev/tsec/if_tsec.c
@@ -1542,9 +1542,6 @@ tsec_error_intr_locked(struct tsec_softc *sc, int count)
/* 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)