mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-07 00:50:50 +00:00
Revert "Enter the network epoch in USB WiFi drivers when processing input"
This reverts commit 17c328b6ae
.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
This commit is contained in:
parent
39b7027979
commit
75f298492a
|
@ -1802,7 +1802,6 @@ otus_rxeof(struct usb_xfer *xfer, struct otus_data *data, struct mbufq *rxq)
|
||||||
static void
|
static void
|
||||||
otus_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
|
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 otus_softc *sc = usbd_xfer_softc(xfer);
|
||||||
struct ieee80211com *ic = &sc->sc_ic;
|
struct ieee80211com *ic = &sc->sc_ic;
|
||||||
struct ieee80211_frame *wh;
|
struct ieee80211_frame *wh;
|
||||||
|
@ -1853,7 +1852,6 @@ otus_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
|
||||||
* callback and safe to unlock.
|
* callback and safe to unlock.
|
||||||
*/
|
*/
|
||||||
OTUS_UNLOCK(sc);
|
OTUS_UNLOCK(sc);
|
||||||
NET_EPOCH_ENTER(et);
|
|
||||||
while ((m = mbufq_dequeue(&scrx)) != NULL) {
|
while ((m = mbufq_dequeue(&scrx)) != NULL) {
|
||||||
wh = mtod(m, struct ieee80211_frame *);
|
wh = mtod(m, struct ieee80211_frame *);
|
||||||
ni = ieee80211_find_rxnode(ic,
|
ni = ieee80211_find_rxnode(ic,
|
||||||
|
@ -1866,7 +1864,6 @@ otus_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
|
||||||
} else
|
} else
|
||||||
(void)ieee80211_input_mimo_all(ic, m);
|
(void)ieee80211_input_mimo_all(ic, m);
|
||||||
}
|
}
|
||||||
NET_EPOCH_EXIT(et);
|
|
||||||
#ifdef IEEE80211_SUPPORT_SUPERG
|
#ifdef IEEE80211_SUPPORT_SUPERG
|
||||||
ieee80211_ff_age_all(ic, 100);
|
ieee80211_ff_age_all(ic, 100);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -361,7 +361,6 @@ rtwn_rx_frame(struct rtwn_softc *sc, struct mbuf *m)
|
||||||
void
|
void
|
||||||
rtwn_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
|
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_usb_softc *uc = usbd_xfer_softc(xfer);
|
||||||
struct rtwn_softc *sc = &uc->uc_sc;
|
struct rtwn_softc *sc = &uc->uc_sc;
|
||||||
struct ieee80211com *ic = &sc->sc_ic;
|
struct ieee80211com *ic = &sc->sc_ic;
|
||||||
|
@ -404,7 +403,6 @@ rtwn_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
|
||||||
m->m_pkthdr.PH_loc.ptr = rtwn_rx_frame(sc, m);
|
m->m_pkthdr.PH_loc.ptr = rtwn_rx_frame(sc, m);
|
||||||
m = m->m_nextpkt;
|
m = m->m_nextpkt;
|
||||||
}
|
}
|
||||||
NET_EPOCH_ENTER(et);
|
|
||||||
RTWN_UNLOCK(sc);
|
RTWN_UNLOCK(sc);
|
||||||
m = m0;
|
m = m0;
|
||||||
while (m != NULL) {
|
while (m != NULL) {
|
||||||
|
@ -422,7 +420,6 @@ rtwn_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
|
||||||
m = next;
|
m = next;
|
||||||
}
|
}
|
||||||
RTWN_LOCK(sc);
|
RTWN_LOCK(sc);
|
||||||
NET_EPOCH_EXIT(et);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* needs it to the inactive queue due to a error. */
|
/* needs it to the inactive queue due to a error. */
|
||||||
|
|
|
@ -2553,7 +2553,6 @@ rsu_rxeof(struct usb_xfer *xfer, struct rsu_data *data)
|
||||||
static void
|
static void
|
||||||
rsu_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
|
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 rsu_softc *sc = usbd_xfer_softc(xfer);
|
||||||
struct ieee80211com *ic = &sc->sc_ic;
|
struct ieee80211com *ic = &sc->sc_ic;
|
||||||
struct ieee80211_node *ni;
|
struct ieee80211_node *ni;
|
||||||
|
@ -2588,7 +2587,6 @@ rsu_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
|
||||||
* ieee80211_input() because here is at the end of a USB
|
* ieee80211_input() because here is at the end of a USB
|
||||||
* callback and safe to unlock.
|
* callback and safe to unlock.
|
||||||
*/
|
*/
|
||||||
NET_EPOCH_ENTER(et);
|
|
||||||
while (m != NULL) {
|
while (m != NULL) {
|
||||||
next = m->m_next;
|
next = m->m_next;
|
||||||
m->m_next = NULL;
|
m->m_next = NULL;
|
||||||
|
@ -2607,7 +2605,6 @@ rsu_bulk_rx_callback(struct usb_xfer *xfer, usb_error_t error)
|
||||||
RSU_LOCK(sc);
|
RSU_LOCK(sc);
|
||||||
m = next;
|
m = next;
|
||||||
}
|
}
|
||||||
NET_EPOCH_EXIT(et);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* needs it to the inactive queue due to a error. */
|
/* needs it to the inactive queue due to a error. */
|
||||||
|
|
Loading…
Reference in a new issue