diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-12-09 19:49:02 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-13 15:23:29 -0500 |
commit | f7e0104c1a4e77cc4f23d5969b0677bdc4f62c63 (patch) | |
tree | 6d1622ec2f6152b611867df1b7a0269471655b53 /net/mac80211/tx.c | |
parent | dbd2fd656f2060abfd3a16257f8b51ec60f6d2ed (diff) | |
download | linux-3.10-f7e0104c1a4e77cc4f23d5969b0677bdc4f62c63.tar.gz linux-3.10-f7e0104c1a4e77cc4f23d5969b0677bdc4f62c63.tar.bz2 linux-3.10-f7e0104c1a4e77cc4f23d5969b0677bdc4f62c63.zip |
mac80211: support separate default keys
Add support for split default keys (unicast
and multicast) in mac80211.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r-- | net/mac80211/tx.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 0ee56bb0ea7..157bde993ef 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -539,7 +539,11 @@ ieee80211_tx_h_select_key(struct ieee80211_tx_data *tx) ieee80211_is_robust_mgmt_frame(hdr) && (key = rcu_dereference(tx->sdata->default_mgmt_key))) tx->key = key; - else if ((key = rcu_dereference(tx->sdata->default_key))) + else if (is_multicast_ether_addr(hdr->addr1) && + (key = rcu_dereference(tx->sdata->default_multicast_key))) + tx->key = key; + else if (!is_multicast_ether_addr(hdr->addr1) && + (key = rcu_dereference(tx->sdata->default_unicast_key))) tx->key = key; else if (tx->sdata->drop_unencrypted && (tx->skb->protocol != tx->sdata->control_port_protocol) && |