aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ral/rt2860.c
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2020-01-30 10:28:01 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2020-01-30 10:28:01 +0000
commitb65f813c1ab99448278961c5ca80dc422b1eae29 (patch)
treee9d3fc16d93a1cb5b2c696d2422cf4d78ae0199c /sys/dev/ral/rt2860.c
parent21c4082de9e2cf9a0fd81a9a981ab06022956847 (diff)
downloadsrc-b65f813c1ab99448278961c5ca80dc422b1eae29.tar.gz
src-b65f813c1ab99448278961c5ca80dc422b1eae29.zip
Widen EPOCH(9) usage in PCI WLAN drivers.
Make sure all occurrences of ieee80211_input_xxx() in sys/dev are covered by a network epoch section. Do not depend on the interrupt handler nor any taskqueues being in a network epoch section. This patch should unbreak the PCI WLAN drivers after r357004. Pointy hat: glebius@ Sponsored by: Mellanox Technologies
Notes
Notes: svn path=/head/; revision=357291
Diffstat (limited to 'sys/dev/ral/rt2860.c')
-rw-r--r--sys/dev/ral/rt2860.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/ral/rt2860.c b/sys/dev/ral/rt2860.c
index a298f412f6ef..4ecab1eb3f99 100644
--- a/sys/dev/ral/rt2860.c
+++ b/sys/dev/ral/rt2860.c
@@ -1179,6 +1179,7 @@ rt2860_maxrssi_chain(struct rt2860_softc *sc, const struct rt2860_rxwi *rxwi)
static void
rt2860_rx_intr(struct rt2860_softc *sc)
{
+ struct epoch_tracker et;
struct rt2860_rx_radiotap_header *tap;
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211_frame *wh;
@@ -1326,11 +1327,13 @@ rt2860_rx_intr(struct rt2860_softc *sc)
/* send the frame to the 802.11 layer */
ni = ieee80211_find_rxnode(ic,
(struct ieee80211_frame_min *)wh);
+ NET_EPOCH_ENTER(et);
if (ni != NULL) {
(void)ieee80211_input(ni, m, rssi - nf, nf);
ieee80211_free_node(ni);
} else
(void)ieee80211_input_all(ic, m, rssi - nf, nf);
+ NET_EPOCH_EXIT(et);
RAL_LOCK(sc);