diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-11-04 08:42:28 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-11-04 18:44:48 -0500 |
commit | 5ed176e1c425f9bd1af161d66d348f6116a04fc6 (patch) | |
tree | b03b8be829a8616e6c6c2678a8c590fee889a116 /include/net | |
parent | 7fdad987d63f02c8fba30276ba395ac8dc93b719 (diff) |
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>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/mac80211.h | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index e12293e60ac1..7f035d779db9 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -2106,16 +2106,37 @@ void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra, | |||
2106 | /** | 2106 | /** |
2107 | * ieee80211_find_sta - find a station | 2107 | * ieee80211_find_sta - find a station |
2108 | * | 2108 | * |
2109 | * @hw: pointer as obtained from ieee80211_alloc_hw() | 2109 | * @vif: virtual interface to look for station on |
2110 | * @addr: station's address | 2110 | * @addr: station's address |
2111 | * | 2111 | * |
2112 | * This function must be called under RCU lock and the | 2112 | * This function must be called under RCU lock and the |
2113 | * resulting pointer is only valid under RCU lock as well. | 2113 | * resulting pointer is only valid under RCU lock as well. |
2114 | */ | 2114 | */ |
2115 | struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_hw *hw, | 2115 | struct ieee80211_sta *ieee80211_find_sta(struct ieee80211_vif *vif, |
2116 | const u8 *addr); | 2116 | const u8 *addr); |
2117 | 2117 | ||
2118 | /** | 2118 | /** |
2119 | * ieee80211_find_sta_by_hw - find a station on hardware | ||
2120 | * | ||
2121 | * @hw: pointer as obtained from ieee80211_alloc_hw() | ||
2122 | * @addr: station's address | ||
2123 | * | ||
2124 | * This function must be called under RCU lock and the | ||
2125 | * resulting pointer is only valid under RCU lock as well. | ||
2126 | * | ||
2127 | * NOTE: This function should not be used! When mac80211 is converted | ||
2128 | * internally to properly keep track of stations on multiple | ||
2129 | * virtual interfaces, it will not always know which station to | ||
2130 | * return here since a single address might be used by multiple | ||
2131 | * logical stations (e.g. consider a station connecting to another | ||
2132 | * BSSID on the same AP hardware without disconnecting first). | ||
2133 | * | ||
2134 | * DO NOT USE THIS FUNCTION. | ||
2135 | */ | ||
2136 | struct ieee80211_sta *ieee80211_find_sta_by_hw(struct ieee80211_hw *hw, | ||
2137 | const u8 *addr); | ||
2138 | |||
2139 | /** | ||
2119 | * ieee80211_beacon_loss - inform hardware does not receive beacons | 2140 | * ieee80211_beacon_loss - inform hardware does not receive beacons |
2120 | * | 2141 | * |
2121 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. | 2142 | * @vif: &struct ieee80211_vif pointer from &struct ieee80211_if_init_conf. |