diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2008-12-03 11:30:22 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-12-05 09:35:57 -0500 |
commit | 73a5267087b5acd4a4288e0a1b809f09ca578d49 (patch) | |
tree | 510920328343bbc30f4db2d666977f7337f29fce /drivers/net/wireless/rt2x00/rt2x00mac.c | |
parent | 9c3444d33e65ade06af82d19522686c1873b953a (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.c | 12 |
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 |