@@ -2517,10 +2517,10 @@ void ieee80211_release_reorder_timeout(s
/* main receive path */
-static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata,
- struct ieee80211_rx_data *rx,
+static int prepare_for_handlers(struct ieee80211_rx_data *rx,
struct ieee80211_hdr *hdr)
{
+ struct ieee80211_sub_if_data *sdata = rx->sdata;
struct sk_buff *skb = rx->skb;
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
u8 *bssid = ieee80211_get_bssid(hdr, skb->len, sdata->vif.type);
@@ -2660,7 +2660,7 @@ static void __ieee80211_rx_handle_packet
rx.sdata = prev_sta->sdata;
status->rx_flags |= IEEE80211_RX_RA_MATCH;
- prepares = prepare_for_handlers(rx.sdata, &rx, hdr);
+ prepares = prepare_for_handlers(&rx, hdr);
if (!prepares)
goto next_sta;
@@ -2694,7 +2694,7 @@ next_sta:
rx.sdata = prev_sta->sdata;
status->rx_flags |= IEEE80211_RX_RA_MATCH;
- prepares = prepare_for_handlers(rx.sdata, &rx, hdr);
+ prepares = prepare_for_handlers(&rx, hdr);
if (!prepares)
prev_sta = NULL;
@@ -2737,15 +2737,15 @@ next_sta:
}
rx.sta = sta_info_get_bss(prev, hdr->addr2);
+ rx.sdata = prev;
status->rx_flags |= IEEE80211_RX_RA_MATCH;
- prepares = prepare_for_handlers(prev, &rx, hdr);
+ prepares = prepare_for_handlers(&rx, hdr);
if (!prepares)
goto next;
if (status->flag & RX_FLAG_MMIC_ERROR) {
- rx.sdata = prev;
if (status->rx_flags & IEEE80211_RX_RA_MATCH)
ieee80211_rx_michael_mic_report(hdr,
&rx);
@@ -2772,15 +2772,15 @@ next:
if (prev) {
rx.sta = sta_info_get_bss(prev, hdr->addr2);
+ rx.sdata = prev;
status->rx_flags |= IEEE80211_RX_RA_MATCH;
- prepares = prepare_for_handlers(prev, &rx, hdr);
+ prepares = prepare_for_handlers(&rx, hdr);
if (!prepares)
prev = NULL;
if (prev && status->flag & RX_FLAG_MMIC_ERROR) {
- rx.sdata = prev;
if (status->rx_flags & IEEE80211_RX_RA_MATCH)
ieee80211_rx_michael_mic_report(hdr,
&rx);