mac80211: make ieee80211_find_sta per virtual interface
Since we have a TODO item to make all station management dependent on virtual interfaces, I figured I'd start with pushing such a change to drivers before more drivers start using the ieee80211_find_sta() API with a hw pointer and cause us grief later on. For now continue exporting the old API in form of ieee80211_find_sta_by_hw(), but discourage its use strongly. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
7fdad987d6
commit
5ed176e1c4
@@ -2106,15 +2106,36 @@ void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra,
|
||||
/**
|
||||
* ieee80211_find_sta - find a station
|
||||
*
|
||||
* @hw: pointer as obtained from ieee80211_alloc_hw()
|
||||
* @vif: virtual interface to look for station on
|
||||
* @addr: station's address
|
||||
*
|
||||
* This function must be called under RCU lock and the
|
||||
* resulting pointer is only valid under RCU lock as well.
|
||||
*/
|
||||
struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_hw *hw,
|
||||
struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_vif *vif,
|
||||
const u8 *addr);
|
||||
|
||||
/**
|
||||
* ieee80211_find_sta_by_hw - find a station on hardware
|
||||
*
|
||||
* @hw: pointer as obtained from ieee80211_alloc_hw()
|
||||
* @addr: station's address
|
||||
*
|
||||
* This function must be called under RCU lock and the
|
||||
* resulting pointer is only valid under RCU lock as well.
|
||||
*
|
||||
* NOTE: This function should not be used! When mac80211 is converted
|
||||
* internally to properly keep track of stations on multiple
|
||||
* virtual interfaces, it will not always know which station to
|
||||
* return here since a single address might be used by multiple
|
||||
* logical stations (e.g. consider a station connecting to another
|
||||
* BSSID on the same AP hardware without disconnecting first).
|
||||
*
|
||||
* DO NOT USE THIS FUNCTION.
|
||||
*/
|
||||
struct ieee80211_sta *ieee80211_find_sta_by_hw(struct ieee80211_hw *hw,
|
||||
const u8 *addr);
|
||||
|
||||
/**
|
||||
* ieee80211_beacon_loss - inform hardware does not receive beacons
|
||||
*
|
||||
|
Reference in New Issue
Block a user