mac80211: move channel switch code
The channel switch code is currently in the spectrum management file, where arguably it belongs. However, it is for managed mode only and uses the structures for that mode only so having it in a more generic file can be confusing. Additionally, my next patch gets simpler with the code here. When/if we ever implement this for IBSS or mesh then we will need to rework the structures it uses anyway at which point we could move the code back. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
9f26a95221
commit
cc32abd494
4 changed files with 105 additions and 111 deletions
|
|
@ -1846,6 +1846,9 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
|
|||
sizeof(mgmt->u.action.u.chan_switch)))
|
||||
return RX_DROP_MONITOR;
|
||||
|
||||
if (sdata->vif.type != NL80211_IFTYPE_STATION)
|
||||
return RX_DROP_MONITOR;
|
||||
|
||||
if (memcmp(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN))
|
||||
return RX_DROP_MONITOR;
|
||||
|
||||
|
|
@ -1856,7 +1859,7 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
|
|||
if (!bss)
|
||||
return RX_DROP_MONITOR;
|
||||
|
||||
ieee80211_process_chanswitch(sdata,
|
||||
ieee80211_sta_process_chanswitch(sdata,
|
||||
&mgmt->u.action.u.chan_switch.sw_elem, bss);
|
||||
ieee80211_rx_bss_put(local, bss);
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue