Skip to content

Commit

Permalink
rt2x00: Correctly initialize AID during set_key()
Browse files Browse the repository at this point in the history
Request the AID from hardware and provide this id
to the driver (in case they need it).

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Ivo van Doorn authored and John W. Linville committed Dec 5, 2008
1 parent 9c3444d commit 73a5267
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions drivers/net/wireless/rt2x00/rt2x00mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,7 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
struct ieee80211_key_conf *key)
{
struct rt2x00_dev *rt2x00dev = hw->priv;
struct ieee80211_sta *sta;
int (*set_key) (struct rt2x00_dev *rt2x00dev,
struct rt2x00lib_crypto *crypto,
struct ieee80211_key_conf *key);
Expand Down Expand Up @@ -536,6 +537,17 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
} else
memcpy(&crypto.key, &key->key[0], key->keylen);

/*
* Discover the Association ID from mac80211.
* Some drivers need this information when updating the
* hardware key (either adding or removing).
*/
rcu_read_lock();
sta = ieee80211_find_sta(hw, address);
if (sta)
crypto.aid = sta->aid;
rcu_read_unlock();

/*
* Each BSS has a maximum of 4 shared keys.
* Shared key index values:
Expand Down

0 comments on commit 73a5267

Please sign in to comment.