Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/usb/wlan/if_run.c
Show First 20 Lines • Show All 2,805 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
static void | static void | ||||
run_rx_frame(struct run_softc *sc, struct mbuf *m, uint32_t dmalen) | run_rx_frame(struct run_softc *sc, struct mbuf *m, uint32_t dmalen) | ||||
{ | { | ||||
struct ieee80211com *ic = &sc->sc_ic; | struct ieee80211com *ic = &sc->sc_ic; | ||||
struct ieee80211_frame *wh; | struct ieee80211_frame *wh; | ||||
struct ieee80211_node *ni; | struct ieee80211_node *ni; | ||||
struct epoch_tracker et; | |||||
struct rt2870_rxd *rxd; | struct rt2870_rxd *rxd; | ||||
struct rt2860_rxwi *rxwi; | struct rt2860_rxwi *rxwi; | ||||
uint32_t flags; | uint32_t flags; | ||||
uint16_t len, rxwisize; | uint16_t len, rxwisize; | ||||
uint8_t ant, rssi; | uint8_t ant, rssi; | ||||
int8_t nf; | int8_t nf; | ||||
rxwisize = sizeof(struct rt2860_rxwi); | rxwisize = sizeof(struct rt2860_rxwi); | ||||
▲ Show 20 Lines • Show All 102 Lines • ▼ Show 20 Lines | case RT2860_PHY_OFDM: | ||||
case 5: tap->wr_rate = 72; break; | case 5: tap->wr_rate = 72; break; | ||||
case 6: tap->wr_rate = 96; break; | case 6: tap->wr_rate = 96; break; | ||||
case 7: tap->wr_rate = 108; break; | case 7: tap->wr_rate = 108; break; | ||||
} | } | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
NET_EPOCH_ENTER(et); | |||||
if (ni != NULL) { | if (ni != NULL) { | ||||
(void)ieee80211_input(ni, m, rssi, nf); | (void)ieee80211_input(ni, m, rssi, nf); | ||||
ieee80211_free_node(ni); | ieee80211_free_node(ni); | ||||
} else { | } else { | ||||
(void)ieee80211_input_all(ic, m, rssi, nf); | (void)ieee80211_input_all(ic, m, rssi, nf); | ||||
} | } | ||||
NET_EPOCH_EXIT(et); | |||||
return; | return; | ||||
fail: | fail: | ||||
m_freem(m); | m_freem(m); | ||||
counter_u64_add(ic->ic_ierrors, 1); | counter_u64_add(ic->ic_ierrors, 1); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 3,386 Lines • Show Last 20 Lines |