Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/usb/wlan/if_rum.c
Show First 20 Lines • Show All 1,162 Lines • ▼ Show 20 Lines | |||||
static void | static void | ||||
rum_bulk_read_callback(struct usb_xfer *xfer, usb_error_t error) | rum_bulk_read_callback(struct usb_xfer *xfer, usb_error_t error) | ||||
{ | { | ||||
struct rum_softc *sc = usbd_xfer_softc(xfer); | struct rum_softc *sc = usbd_xfer_softc(xfer); | ||||
struct ieee80211com *ic = &sc->sc_ic; | struct ieee80211com *ic = &sc->sc_ic; | ||||
struct ieee80211_frame_min *wh; | struct ieee80211_frame_min *wh; | ||||
struct ieee80211_node *ni; | struct ieee80211_node *ni; | ||||
struct epoch_tracker et; | |||||
struct mbuf *m = NULL; | struct mbuf *m = NULL; | ||||
struct usb_page_cache *pc; | struct usb_page_cache *pc; | ||||
uint32_t flags; | uint32_t flags; | ||||
uint8_t rssi = 0; | uint8_t rssi = 0; | ||||
int len; | int len; | ||||
usbd_xfer_status(xfer, &len, NULL, NULL, NULL); | usbd_xfer_status(xfer, &len, NULL, NULL, NULL); | ||||
▲ Show 20 Lines • Show All 102 Lines • ▼ Show 20 Lines | tr_setup: | ||||
*/ | */ | ||||
RUM_UNLOCK(sc); | RUM_UNLOCK(sc); | ||||
if (m) { | if (m) { | ||||
if (m->m_len >= sizeof(struct ieee80211_frame_min)) | if (m->m_len >= sizeof(struct ieee80211_frame_min)) | ||||
ni = ieee80211_find_rxnode(ic, wh); | ni = ieee80211_find_rxnode(ic, wh); | ||||
else | else | ||||
ni = NULL; | ni = NULL; | ||||
NET_EPOCH_ENTER(et); | |||||
if (ni != NULL) { | if (ni != NULL) { | ||||
(void) ieee80211_input(ni, m, rssi, | (void) ieee80211_input(ni, m, rssi, | ||||
RT2573_NOISE_FLOOR); | RT2573_NOISE_FLOOR); | ||||
ieee80211_free_node(ni); | ieee80211_free_node(ni); | ||||
} else | } else | ||||
(void) ieee80211_input_all(ic, m, rssi, | (void) ieee80211_input_all(ic, m, rssi, | ||||
RT2573_NOISE_FLOOR); | RT2573_NOISE_FLOOR); | ||||
NET_EPOCH_EXIT(et); | |||||
} | } | ||||
RUM_LOCK(sc); | RUM_LOCK(sc); | ||||
rum_start(sc); | rum_start(sc); | ||||
return; | return; | ||||
default: /* Error */ | default: /* Error */ | ||||
if (error != USB_ERR_CANCELLED) { | if (error != USB_ERR_CANCELLED) { | ||||
/* try to clear stall first */ | /* try to clear stall first */ | ||||
▲ Show 20 Lines • Show All 1,996 Lines • Show Last 20 Lines |