aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00mac.c
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-12-03 11:30:22 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-12-05 09:35:57 -0500
commit73a5267087b5acd4a4288e0a1b809f09ca578d49 (patch)
tree510920328343bbc30f4db2d666977f7337f29fce /drivers/net/wireless/rt2x00/rt2x00mac.c
parent9c3444d33e65ade06af82d19522686c1873b953a (diff)
rt2x00: Correctly initialize AID during set_key()
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>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00mac.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00mac.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index dded68071007..38edee5fe168 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -487,6 +487,7 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
487 struct ieee80211_key_conf *key) 487 struct ieee80211_key_conf *key)
488{ 488{
489 struct rt2x00_dev *rt2x00dev = hw->priv; 489 struct rt2x00_dev *rt2x00dev = hw->priv;
490 struct ieee80211_sta *sta;
490 int (*set_key) (struct rt2x00_dev *rt2x00dev, 491 int (*set_key) (struct rt2x00_dev *rt2x00dev,
491 struct rt2x00lib_crypto *crypto, 492 struct rt2x00lib_crypto *crypto,
492 struct ieee80211_key_conf *key); 493 struct ieee80211_key_conf *key);
@@ -537,6 +538,17 @@ int rt2x00mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
537 memcpy(&crypto.key, &key->key[0], key->keylen); 538 memcpy(&crypto.key, &key->key[0], key->keylen);
538 539
539 /* 540 /*
541 * Discover the Association ID from mac80211.
542 * Some drivers need this information when updating the
543 * hardware key (either adding or removing).
544 */
545 rcu_read_lock();
546 sta = ieee80211_find_sta(hw, address);
547 if (sta)
548 crypto.aid = sta->aid;
549 rcu_read_unlock();
550
551 /*
540 * Each BSS has a maximum of 4 shared keys. 552 * Each BSS has a maximum of 4 shared keys.
541 * Shared key index values: 553 * Shared key index values:
542 * 0) BSS0 key0 554 * 0) BSS0 key0