From b2fdc70af087cd1f5fd7aaab90bff3ec5f98504d Mon Sep 17 00:00:00 2001 From: Ivo van Doorn Date: Wed, 3 Dec 2008 17:30:22 +0100 Subject: [PATCH] --- yaml --- r: 122527 b: refs/heads/master c: 73a5267087b5acd4a4288e0a1b809f09ca578d49 h: refs/heads/master i: 122525: 8aa31bdbfad5e044edab2574127bc80487e29eb9 122523: d5b277f860c7231e4c70c83c434fdd5e8da377b4 122519: 470034607175bdd0a1e22d4ee73e85d6bb201989 122511: d83ba66d48b782bcb15f819d46ad1787f6d65a65 122495: ef036e985dae5e96e0752846f390828bcdb58e53 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/rt2x00/rt2x00mac.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index f1f32777f117..4414c7c8e651 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9c3444d33e65ade06af82d19522686c1873b953a +refs/heads/master: 73a5267087b5acd4a4288e0a1b809f09ca578d49 diff --git a/trunk/drivers/net/wireless/rt2x00/rt2x00mac.c b/trunk/drivers/net/wireless/rt2x00/rt2x00mac.c index dded68071007..38edee5fe168 100644 --- a/trunk/drivers/net/wireless/rt2x00/rt2x00mac.c +++ b/trunk/drivers/net/wireless/rt2x00/rt2x00mac.c @@ -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); @@ -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: