diff options
| author | Justin Hibbits <jhibbits@FreeBSD.org> | 2017-04-04 02:55:55 +0000 |
|---|---|---|
| committer | Justin Hibbits <jhibbits@FreeBSD.org> | 2017-04-04 02:55:55 +0000 |
| commit | 2fad65cfa0001b3611144b70ed03a6805973b87a (patch) | |
| tree | cf785d49d5559b8296d372087e91742e88843b39 | |
| parent | 2c0dbbcb8a7bb0a6b5b7394261617e0d62eda44c (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
| -rw-r--r-- | sys/dev/tsec/if_tsec.c | 3 |
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) |
