diff options
author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2020-01-30 10:28:01 +0000 |
---|---|---|
committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2020-01-30 10:28:01 +0000 |
commit | b65f813c1ab99448278961c5ca80dc422b1eae29 (patch) | |
tree | e9d3fc16d93a1cb5b2c696d2422cf4d78ae0199c /sys/dev/ral/rt2860.c | |
parent | 21c4082de9e2cf9a0fd81a9a981ab06022956847 (diff) | |
download | src-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.c | 3 |
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); |