Page MenuHomeFreeBSD

D42427.id129708.diff
No OneTemporary

D42427.id129708.diff

diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -4155,7 +4155,6 @@
struct ieee80211_sta *sta, struct napi_struct *napi __unused,
struct list_head *list __unused)
{
- struct epoch_tracker et;
struct lkpi_hw *lhw;
struct ieee80211com *ic;
struct mbuf *m;
@@ -4372,7 +4371,6 @@
}
#endif
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
ok = ieee80211_input_mimo(ni, m);
ieee80211_free_node(ni);
@@ -4382,7 +4380,6 @@
ok = ieee80211_input_mimo_all(ic, m);
/* mbuf got consumed. */
}
- NET_EPOCH_EXIT(et);
#ifdef LINUXKPI_DEBUG_80211
if (linuxkpi_debug_80211 & D80211_TRACE_RX)
diff --git a/sys/dev/ath/if_ath_rx.c b/sys/dev/ath/if_ath_rx.c
--- a/sys/dev/ath/if_ath_rx.c
+++ b/sys/dev/ath/if_ath_rx.c
@@ -667,8 +667,6 @@
int is_good = 0;
struct ath_rx_edma *re = &sc->sc_rxedma[qtype];
- NET_EPOCH_ASSERT();
-
/*
* Calculate the correct 64 bit TSF given
* the TSF64 register value and rs_tstamp.
@@ -1090,8 +1088,6 @@
int kickpcu = 0;
int ret;
- NET_EPOCH_ASSERT();
-
/* XXX we must not hold the ATH_LOCK here */
ATH_UNLOCK_ASSERT(sc);
ATH_PCU_UNLOCK_ASSERT(sc);
@@ -1311,7 +1307,6 @@
ath_legacy_rx_tasklet(void *arg, int npending)
{
struct ath_softc *sc = arg;
- struct epoch_tracker et;
ATH_KTR(sc, ATH_KTR_RXPROC, 1, "ath_rx_proc: pending=%d", npending);
DPRINTF(sc, ATH_DEBUG_RX_PROC, "%s: pending %u\n", __func__, npending);
@@ -1324,18 +1319,14 @@
}
ATH_PCU_UNLOCK(sc);
- NET_EPOCH_ENTER(et);
ath_rx_proc(sc, 1);
- NET_EPOCH_EXIT(et);
}
static void
ath_legacy_flushrecv(struct ath_softc *sc)
{
- struct epoch_tracker et;
- NET_EPOCH_ENTER(et);
+
ath_rx_proc(sc, 0);
- NET_EPOCH_EXIT(et);
}
static void
diff --git a/sys/dev/ath/if_ath_rx_edma.c b/sys/dev/ath/if_ath_rx_edma.c
--- a/sys/dev/ath/if_ath_rx_edma.c
+++ b/sys/dev/ath/if_ath_rx_edma.c
@@ -555,7 +555,6 @@
int16_t nf;
ath_bufhead rxlist;
struct mbuf *m;
- struct epoch_tracker et;
TAILQ_INIT(&rxlist);
@@ -572,8 +571,6 @@
TAILQ_CONCAT(&rxlist, &sc->sc_rx_rxlist[qtype], bf_list);
ATH_RX_UNLOCK(sc);
- NET_EPOCH_ENTER(et);
-
/* Handle the completed descriptors */
/*
* XXX is this SAFE call needed? The ath_buf entries
@@ -597,7 +594,6 @@
if (ngood) {
sc->sc_lastrx = tsf;
}
- NET_EPOCH_EXIT(et);
ATH_KTR(sc, ATH_KTR_INTERRUPTS, 1,
"ath edma rx deferred proc: ngood=%d\n",
diff --git a/sys/dev/bwi/if_bwi.c b/sys/dev/bwi/if_bwi.c
--- a/sys/dev/bwi/if_bwi.c
+++ b/sys/dev/bwi/if_bwi.c
@@ -1503,7 +1503,6 @@
void
bwi_intr(void *xsc)
{
- struct epoch_tracker et;
struct bwi_softc *sc = xsc;
struct bwi_mac *mac;
uint32_t intr_status;
@@ -1623,9 +1622,7 @@
device_printf(sc->sc_dev, "intr noise\n");
if (txrx_intr_status[0] & BWI_TXRX_INTR_RX) {
- NET_EPOCH_ENTER(et);
rx_data = sc->sc_rxeof(sc);
- NET_EPOCH_EXIT(et);
if (sc->sc_flags & BWI_F_STOP) {
BWI_UNLOCK(sc);
return;
diff --git a/sys/dev/bwn/if_bwn.c b/sys/dev/bwn/if_bwn.c
--- a/sys/dev/bwn/if_bwn.c
+++ b/sys/dev/bwn/if_bwn.c
@@ -5075,7 +5075,6 @@
static void
bwn_intrtask(void *arg, int npending)
{
- struct epoch_tracker et;
struct bwn_mac *mac = arg;
struct bwn_softc *sc = mac->mac_sc;
uint32_t merged = 0;
@@ -5136,7 +5135,6 @@
if (mac->mac_reason_intr & BWN_INTR_NOISESAMPLE_OK)
bwn_intr_noise(mac);
- NET_EPOCH_ENTER(et);
if (mac->mac_flags & BWN_MAC_FLAG_DMA) {
if (mac->mac_reason[0] & BWN_DMAINTR_RX_DONE) {
bwn_dma_rx(mac->mac_method.dma.rx);
@@ -5144,7 +5142,6 @@
}
} else
rx = bwn_pio_rx(&mac->mac_method.pio.rx);
- NET_EPOCH_EXIT(et);
KASSERT(!(mac->mac_reason[1] & BWN_DMAINTR_RX_DONE), ("%s", __func__));
KASSERT(!(mac->mac_reason[2] & BWN_DMAINTR_RX_DONE), ("%s", __func__));
diff --git a/sys/dev/ipw/if_ipw.c b/sys/dev/ipw/if_ipw.c
--- a/sys/dev/ipw/if_ipw.c
+++ b/sys/dev/ipw/if_ipw.c
@@ -1156,7 +1156,6 @@
ipw_rx_data_intr(struct ipw_softc *sc, struct ipw_status *status,
struct ipw_soft_bd *sbd, struct ipw_soft_buf *sbuf)
{
- struct epoch_tracker et;
struct ieee80211com *ic = &sc->sc_ic;
struct mbuf *mnew, *m;
struct ieee80211_node *ni;
@@ -1228,13 +1227,11 @@
IPW_UNLOCK(sc);
ni = ieee80211_find_rxnode(ic, mtod(m, struct ieee80211_frame_min *));
- 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);
IPW_LOCK(sc);
bus_dmamap_sync(sc->rbd_dmat, sc->rbd_map, BUS_DMASYNC_PREWRITE);
diff --git a/sys/dev/iwi/if_iwi.c b/sys/dev/iwi/if_iwi.c
--- a/sys/dev/iwi/if_iwi.c
+++ b/sys/dev/iwi/if_iwi.c
@@ -1177,7 +1177,6 @@
iwi_frame_intr(struct iwi_softc *sc, struct iwi_rx_data *data, int i,
struct iwi_frame *frame)
{
- struct epoch_tracker et;
struct ieee80211com *ic = &sc->sc_ic;
struct mbuf *mnew, *m;
struct ieee80211_node *ni;
@@ -1267,13 +1266,11 @@
IWI_UNLOCK(sc);
ni = ieee80211_find_rxnode(ic, mtod(m, struct ieee80211_frame_min *));
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
type = ieee80211_input(ni, m, rssi, nf);
ieee80211_free_node(ni);
} else
type = ieee80211_input_all(ic, m, rssi, nf);
- NET_EPOCH_EXIT(et);
IWI_LOCK(sc);
if (sc->sc_softled) {
diff --git a/sys/dev/iwm/if_iwm.c b/sys/dev/iwm/if_iwm.c
--- a/sys/dev/iwm/if_iwm.c
+++ b/sys/dev/iwm/if_iwm.c
@@ -3375,7 +3375,6 @@
iwm_rx_mpdu(struct iwm_softc *sc, struct mbuf *m, uint32_t offset,
bool stolen)
{
- struct epoch_tracker et;
struct ieee80211com *ic;
struct ieee80211_frame *wh;
struct ieee80211_node *ni;
@@ -3395,8 +3394,6 @@
ni = ieee80211_find_rxnode(ic, (struct ieee80211_frame_min *)wh);
IWM_UNLOCK(sc);
-
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
IWM_DPRINTF(sc, IWM_DEBUG_RECV, "input m %p\n", m);
ieee80211_input_mimo(ni, m);
@@ -3405,8 +3402,6 @@
IWM_DPRINTF(sc, IWM_DEBUG_RECV, "inputall m %p\n", m);
ieee80211_input_mimo_all(ic, m);
}
- NET_EPOCH_EXIT(et);
-
IWM_LOCK(sc);
return true;
diff --git a/sys/dev/iwn/if_iwn.c b/sys/dev/iwn/if_iwn.c
--- a/sys/dev/iwn/if_iwn.c
+++ b/sys/dev/iwn/if_iwn.c
@@ -3019,7 +3019,6 @@
iwn_rx_done(struct iwn_softc *sc, struct iwn_rx_desc *desc,
struct iwn_rx_data *data)
{
- struct epoch_tracker et;
struct iwn_ops *ops = &sc->ops;
struct ieee80211com *ic = &sc->sc_ic;
struct iwn_rx_ring *ring = &sc->rxq;
@@ -3179,7 +3178,6 @@
}
IWN_UNLOCK(sc);
- NET_EPOCH_ENTER(et);
/* Send the frame to the 802.11 layer. */
if (ni != NULL) {
@@ -3191,7 +3189,6 @@
} else
(void)ieee80211_input_all(ic, m, rssi - nf, nf);
- NET_EPOCH_EXIT(et);
IWN_LOCK(sc);
DPRINTF(sc, IWN_DEBUG_TRACE, "->%s: end\n",__func__);
diff --git a/sys/dev/malo/if_malo.c b/sys/dev/malo/if_malo.c
--- a/sys/dev/malo/if_malo.c
+++ b/sys/dev/malo/if_malo.c
@@ -1932,7 +1932,6 @@
static void
malo_rx_proc(void *arg, int npending)
{
- struct epoch_tracker et;
struct malo_softc *sc = arg;
struct ieee80211com *ic = &sc->malo_ic;
struct malo_rxbuf *bf;
@@ -2065,13 +2064,11 @@
/* dispatch */
ni = ieee80211_find_rxnode(ic,
(struct ieee80211_frame_min *)wh);
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
(void) ieee80211_input(ni, m, rssi, ds->nf);
ieee80211_free_node(ni);
} else
(void) ieee80211_input_all(ic, m, rssi, ds->nf);
- NET_EPOCH_EXIT(et);
rx_next:
/* NB: ignore ENOMEM so we process more descriptors */
(void) malo_rxbuf_init(sc, bf);
diff --git a/sys/dev/mwl/if_mwl.c b/sys/dev/mwl/if_mwl.c
--- a/sys/dev/mwl/if_mwl.c
+++ b/sys/dev/mwl/if_mwl.c
@@ -2603,7 +2603,6 @@
static void
mwl_rx_proc(void *arg, int npending)
{
- struct epoch_tracker et;
struct mwl_softc *sc = arg;
struct ieee80211com *ic = &sc->sc_ic;
struct mwl_rxbuf *bf;
@@ -2792,8 +2791,6 @@
/* dispatch */
ni = ieee80211_find_rxnode(ic,
(const struct ieee80211_frame_min *) wh);
-
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
mn = MWL_NODE(ni);
#ifdef MWL_ANT_INFO_SUPPORT
@@ -2809,7 +2806,6 @@
ieee80211_free_node(ni);
} else
(void) ieee80211_input_all(ic, m, rssi, nf);
- NET_EPOCH_EXIT(et);
rx_next:
/* NB: ignore ENOMEM so we process more descriptors */
(void) mwl_rxbuf_init(sc, bf);
diff --git a/sys/dev/otus/if_otus.c b/sys/dev/otus/if_otus.c
--- a/sys/dev/otus/if_otus.c
+++ b/sys/dev/otus/if_otus.c
@@ -1802,7 +1802,6 @@
static void
otus_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
{
- struct epoch_tracker et;
struct otus_softc *sc = usbd_xfer_softc(xfer);
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211_frame *wh;
@@ -1853,7 +1852,6 @@
* callback and safe to unlock.
*/
OTUS_UNLOCK(sc);
- NET_EPOCH_ENTER(et);
while ((m = mbufq_dequeue(&scrx)) != NULL) {
wh = mtod(m, struct ieee80211_frame *);
ni = ieee80211_find_rxnode(ic,
@@ -1866,7 +1864,6 @@
} else
(void)ieee80211_input_mimo_all(ic, m);
}
- NET_EPOCH_EXIT(et);
#ifdef IEEE80211_SUPPORT_SUPERG
ieee80211_ff_age_all(ic, 100);
#endif
diff --git a/sys/dev/ral/rt2560.c b/sys/dev/ral/rt2560.c
--- a/sys/dev/ral/rt2560.c
+++ b/sys/dev/ral/rt2560.c
@@ -1083,7 +1083,6 @@
static void
rt2560_decryption_intr(struct rt2560_softc *sc)
{
- struct epoch_tracker et;
struct ieee80211com *ic = &sc->sc_ic;
struct rt2560_rx_desc *desc;
struct rt2560_rx_data *data;
@@ -1194,13 +1193,12 @@
wh = mtod(m, struct ieee80211_frame *);
ni = ieee80211_find_rxnode(ic,
(struct ieee80211_frame_min *)wh);
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
(void) ieee80211_input(ni, m, rssi, nf);
ieee80211_free_node(ni);
} else
(void) ieee80211_input_all(ic, m, rssi, nf);
- NET_EPOCH_EXIT(et);
+
RAL_LOCK(sc);
sc->sc_flags &= ~RT2560_F_INPUT_RUNNING;
skip: desc->flags = htole32(RT2560_RX_BUSY);
diff --git a/sys/dev/ral/rt2661.c b/sys/dev/ral/rt2661.c
--- a/sys/dev/ral/rt2661.c
+++ b/sys/dev/ral/rt2661.c
@@ -955,7 +955,6 @@
static void
rt2661_rx_intr(struct rt2661_softc *sc)
{
- struct epoch_tracker et;
struct ieee80211com *ic = &sc->sc_ic;
struct rt2661_rx_desc *desc;
struct rt2661_rx_data *data;
@@ -1072,13 +1071,11 @@
/* 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);
ieee80211_free_node(ni);
} else
(void) ieee80211_input_all(ic, m, rssi, nf);
- NET_EPOCH_EXIT(et);
RAL_LOCK(sc);
sc->sc_flags &= ~RAL_INPUT_RUNNING;
diff --git a/sys/dev/ral/rt2860.c b/sys/dev/ral/rt2860.c
--- a/sys/dev/ral/rt2860.c
+++ b/sys/dev/ral/rt2860.c
@@ -1176,7 +1176,6 @@
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;
@@ -1324,13 +1323,11 @@
/* 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);
diff --git a/sys/dev/rtwn/pci/rtwn_pci_rx.c b/sys/dev/rtwn/pci/rtwn_pci_rx.c
--- a/sys/dev/rtwn/pci/rtwn_pci_rx.c
+++ b/sys/dev/rtwn/pci/rtwn_pci_rx.c
@@ -33,7 +33,6 @@
#include <sys/taskqueue.h>
#include <sys/bus.h>
#include <sys/endian.h>
-#include <sys/epoch.h>
#include <machine/bus.h>
#include <machine/resource.h>
@@ -83,7 +82,6 @@
static void
rtwn_pci_rx_frame(struct rtwn_pci_softc *pc)
{
- struct epoch_tracker et;
struct rtwn_softc *sc = &pc->pc_sc;
struct rtwn_rx_ring *ring = &pc->rx_ring;
struct rtwn_rx_stat_pci *rx_desc = &ring->desc[ring->cur];
@@ -163,15 +161,12 @@
/* Send the frame to the 802.11 layer. */
RTWN_UNLOCK(sc);
-
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
(void)ieee80211_input_mimo(ni, m);
/* Node is no longer needed. */
ieee80211_free_node(ni);
} else
(void)ieee80211_input_mimo_all(ic, m);
- NET_EPOCH_EXIT(et);
RTWN_LOCK(sc);
diff --git a/sys/dev/rtwn/usb/rtwn_usb_rx.c b/sys/dev/rtwn/usb/rtwn_usb_rx.c
--- a/sys/dev/rtwn/usb/rtwn_usb_rx.c
+++ b/sys/dev/rtwn/usb/rtwn_usb_rx.c
@@ -361,7 +361,6 @@
void
rtwn_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
{
- struct epoch_tracker et;
struct rtwn_usb_softc *uc = usbd_xfer_softc(xfer);
struct rtwn_softc *sc = &uc->uc_sc;
struct ieee80211com *ic = &sc->sc_ic;
@@ -404,7 +403,6 @@
m->m_pkthdr.PH_loc.ptr = rtwn_rx_frame(sc, m);
m = m->m_nextpkt;
}
- NET_EPOCH_ENTER(et);
RTWN_UNLOCK(sc);
m = m0;
while (m != NULL) {
@@ -422,7 +420,6 @@
m = next;
}
RTWN_LOCK(sc);
- NET_EPOCH_EXIT(et);
break;
default:
/* needs it to the inactive queue due to a error. */
diff --git a/sys/dev/usb/wlan/if_rsu.c b/sys/dev/usb/wlan/if_rsu.c
--- a/sys/dev/usb/wlan/if_rsu.c
+++ b/sys/dev/usb/wlan/if_rsu.c
@@ -2553,7 +2553,6 @@
static void
rsu_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
{
- struct epoch_tracker et;
struct rsu_softc *sc = usbd_xfer_softc(xfer);
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211_node *ni;
@@ -2588,7 +2587,6 @@
* ieee80211_input() because here is at the end of a USB
* callback and safe to unlock.
*/
- NET_EPOCH_ENTER(et);
while (m != NULL) {
next = m->m_next;
m->m_next = NULL;
@@ -2607,7 +2605,6 @@
RSU_LOCK(sc);
m = next;
}
- NET_EPOCH_EXIT(et);
break;
default:
/* needs it to the inactive queue due to a error. */
diff --git a/sys/dev/usb/wlan/if_rum.c b/sys/dev/usb/wlan/if_rum.c
--- a/sys/dev/usb/wlan/if_rum.c
+++ b/sys/dev/usb/wlan/if_rum.c
@@ -1166,7 +1166,6 @@
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211_frame_min *wh;
struct ieee80211_node *ni;
- struct epoch_tracker et;
struct mbuf *m = NULL;
struct usb_page_cache *pc;
uint32_t flags;
@@ -1285,7 +1284,6 @@
else
ni = NULL;
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
(void) ieee80211_input(ni, m, rssi,
RT2573_NOISE_FLOOR);
@@ -1293,7 +1291,6 @@
} else
(void) ieee80211_input_all(ic, m, rssi,
RT2573_NOISE_FLOOR);
- NET_EPOCH_EXIT(et);
}
RUM_LOCK(sc);
rum_start(sc);
diff --git a/sys/dev/usb/wlan/if_run.c b/sys/dev/usb/wlan/if_run.c
--- a/sys/dev/usb/wlan/if_run.c
+++ b/sys/dev/usb/wlan/if_run.c
@@ -2870,7 +2870,6 @@
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211_frame *wh;
struct ieee80211_node *ni;
- struct epoch_tracker et;
struct rt2870_rxd *rxd;
struct rt2860_rxwi *rxwi;
uint32_t flags;
@@ -2993,14 +2992,12 @@
}
}
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
(void)ieee80211_input(ni, m, rssi, nf);
ieee80211_free_node(ni);
} else {
(void)ieee80211_input_all(ic, m, rssi, nf);
}
- NET_EPOCH_EXIT(et);
return;
diff --git a/sys/dev/usb/wlan/if_uath.c b/sys/dev/usb/wlan/if_uath.c
--- a/sys/dev/usb/wlan/if_uath.c
+++ b/sys/dev/usb/wlan/if_uath.c
@@ -2703,7 +2703,6 @@
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211_frame *wh;
struct ieee80211_node *ni;
- struct epoch_tracker et;
struct mbuf *m = NULL;
struct uath_data *data;
struct uath_rx_desc *desc = NULL;
@@ -2750,7 +2749,6 @@
ni = ieee80211_find_rxnode(ic,
(struct ieee80211_frame_min *)wh);
nf = -95; /* XXX */
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
(void) ieee80211_input(ni, m,
(int)be32toh(desc->rssi), nf);
@@ -2759,7 +2757,6 @@
} else
(void) ieee80211_input_all(ic, m,
(int)be32toh(desc->rssi), nf);
- NET_EPOCH_EXIT(et);
m = NULL;
desc = NULL;
}
diff --git a/sys/dev/usb/wlan/if_upgt.c b/sys/dev/usb/wlan/if_upgt.c
--- a/sys/dev/usb/wlan/if_upgt.c
+++ b/sys/dev/usb/wlan/if_upgt.c
@@ -2205,7 +2205,6 @@
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211_frame *wh;
struct ieee80211_node *ni;
- struct epoch_tracker et;
struct mbuf *m = NULL;
struct upgt_data *data;
int8_t nf;
@@ -2243,14 +2242,12 @@
ni = ieee80211_find_rxnode(ic,
(struct ieee80211_frame_min *)wh);
nf = -95; /* XXX */
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
(void) ieee80211_input(ni, m, rssi, nf);
/* node is no longer needed */
ieee80211_free_node(ni);
} else
(void) ieee80211_input_all(ic, m, rssi, nf);
- NET_EPOCH_EXIT(et);
m = NULL;
}
UPGT_LOCK(sc);
diff --git a/sys/dev/usb/wlan/if_ural.c b/sys/dev/usb/wlan/if_ural.c
--- a/sys/dev/usb/wlan/if_ural.c
+++ b/sys/dev/usb/wlan/if_ural.c
@@ -846,7 +846,6 @@
struct ural_softc *sc = usbd_xfer_softc(xfer);
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211_node *ni;
- struct epoch_tracker et;
struct mbuf *m = NULL;
struct usb_page_cache *pc;
uint32_t flags;
@@ -927,13 +926,11 @@
if (m) {
ni = ieee80211_find_rxnode(ic,
mtod(m, struct ieee80211_frame_min *));
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
(void) ieee80211_input(ni, m, rssi, nf);
ieee80211_free_node(ni);
} else
(void) ieee80211_input_all(ic, m, rssi, nf);
- NET_EPOCH_EXIT(et);
}
RAL_LOCK(sc);
ural_start(sc);
diff --git a/sys/dev/usb/wlan/if_urtw.c b/sys/dev/usb/wlan/if_urtw.c
--- a/sys/dev/usb/wlan/if_urtw.c
+++ b/sys/dev/usb/wlan/if_urtw.c
@@ -4040,7 +4040,6 @@
struct urtw_softc *sc = usbd_xfer_softc(xfer);
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211_node *ni;
- struct epoch_tracker et;
struct mbuf *m = NULL;
struct urtw_data *data;
int8_t nf = -95;
@@ -4084,14 +4083,12 @@
} else
ni = NULL;
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
(void) ieee80211_input(ni, m, rssi, nf);
/* node is no longer needed */
ieee80211_free_node(ni);
} else
(void) ieee80211_input_all(ic, m, rssi, nf);
- NET_EPOCH_EXIT(et);
m = NULL;
}
URTW_LOCK(sc);
diff --git a/sys/dev/usb/wlan/if_zyd.c b/sys/dev/usb/wlan/if_zyd.c
--- a/sys/dev/usb/wlan/if_zyd.c
+++ b/sys/dev/usb/wlan/if_zyd.c
@@ -2219,7 +2219,6 @@
struct zyd_softc *sc = usbd_xfer_softc(xfer);
struct ieee80211com *ic = &sc->sc_ic;
struct ieee80211_node *ni;
- struct epoch_tracker et;
struct zyd_rx_desc desc;
struct mbuf *m;
struct usb_page_cache *pc;
@@ -2275,7 +2274,6 @@
* "ieee80211_input" here, and not some lines up!
*/
ZYD_UNLOCK(sc);
- NET_EPOCH_ENTER(et);
for (i = 0; i < sc->sc_rx_count; i++) {
rssi = sc->sc_rx_data[i].rssi;
m = sc->sc_rx_data[i].m;
@@ -2291,7 +2289,6 @@
} else
(void)ieee80211_input_all(ic, m, rssi, nf);
}
- NET_EPOCH_EXIT(et);
ZYD_LOCK(sc);
zyd_start(sc);
break;
diff --git a/sys/dev/wpi/if_wpi.c b/sys/dev/wpi/if_wpi.c
--- a/sys/dev/wpi/if_wpi.c
+++ b/sys/dev/wpi/if_wpi.c
@@ -1906,7 +1906,6 @@
wpi_rx_done(struct wpi_softc *sc, struct wpi_rx_desc *desc,
struct wpi_rx_data *data)
{
- struct epoch_tracker et;
struct ieee80211com *ic = &sc->sc_ic;
struct wpi_rx_ring *ring = &sc->rxq;
struct wpi_rx_stat *stat;
@@ -2026,7 +2025,6 @@
}
WPI_UNLOCK(sc);
- NET_EPOCH_ENTER(et);
/* Send the frame to the 802.11 layer. */
if (ni != NULL) {
@@ -2036,7 +2034,6 @@
} else
(void)ieee80211_input_all(ic, m, stat->rssi, WPI_RSSI_OFFSET);
- NET_EPOCH_EXIT(et);
WPI_LOCK(sc);
return;
diff --git a/sys/dev/wtap/if_wtap.c b/sys/dev/wtap/if_wtap.c
--- a/sys/dev/wtap/if_wtap.c
+++ b/sys/dev/wtap/if_wtap.c
@@ -493,7 +493,6 @@
static void
wtap_rx_proc(void *arg, int npending)
{
- struct epoch_tracker et;
struct wtap_softc *sc = (struct wtap_softc *)arg;
struct ieee80211com *ic = &sc->sc_ic;
struct mbuf *m;
@@ -540,7 +539,6 @@
ni = ieee80211_find_rxnode_withkey(ic,
mtod(m, const struct ieee80211_frame_min *),
IEEE80211_KEYIX_NONE);
- NET_EPOCH_ENTER(et);
if (ni != NULL) {
/*
* Sending station is known, dispatch directly.
@@ -550,8 +548,7 @@
} else {
ieee80211_input_all(ic, m, 1<<7, 10);
}
- NET_EPOCH_EXIT(et);
-
+
/* The mbufs are freed by the Net80211 stack */
free(bf, M_WTAP_RXBUF);
}
diff --git a/sys/net80211/ieee80211_hostap.c b/sys/net80211/ieee80211_hostap.c
--- a/sys/net80211/ieee80211_hostap.c
+++ b/sys/net80211/ieee80211_hostap.c
@@ -423,6 +423,8 @@
(void) ieee80211_vap_xmitpkt(vap, mcopy);
}
if (m != NULL) {
+ struct epoch_tracker et;
+
/*
* Mark frame as coming from vap's interface.
*/
@@ -439,7 +441,9 @@
m->m_pkthdr.ether_vtag = ni->ni_vlan;
m->m_flags |= M_VLANTAG;
}
+ NET_EPOCH_ENTER(et);
ifp->if_input(ifp, m);
+ NET_EPOCH_EXIT(et);
}
}
diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c
--- a/sys/net80211/ieee80211_input.c
+++ b/sys/net80211/ieee80211_input.c
@@ -274,6 +274,7 @@
ieee80211_deliver_data(struct ieee80211vap *vap,
struct ieee80211_node *ni, struct mbuf *m)
{
+ struct epoch_tracker et;
struct ether_header *eh = mtod(m, struct ether_header *);
struct ifnet *ifp = vap->iv_ifp;
@@ -304,7 +305,9 @@
m->m_pkthdr.ether_vtag = ni->ni_vlan;
m->m_flags |= M_VLANTAG;
}
+ NET_EPOCH_ENTER(et);
ifp->if_input(ifp, m);
+ NET_EPOCH_EXIT(et);
}
struct mbuf *

File Metadata

Mime Type
text/plain
Expires
Sat, Jan 24, 9:10 PM (22 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27910456
Default Alt Text
D42427.id129708.diff (20 KB)

Event Timeline