Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73a52670 authored by Ivo van Doorn's avatar Ivo van Doorn Committed by John W. Linville
Browse files

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: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 9c3444d3
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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: