aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-10-05 13:39:30 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-10-06 16:30:40 -0400
commite31b82136d1adc7a599b6e99d3321e5831841f5a (patch)
treec72d78d4cccfd08587e909c7efe59956f1cbc23e /drivers
parent53f73c09d64f1fa7d7e6e8b6bb7468d42eddc92d (diff)
cfg80211/mac80211: allow per-station GTKs
This adds API to allow adding per-station GTKs, updates mac80211 to support it, and also allows drivers to remove a key from hwaccel again when this may be necessary due to multiple GTKs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwmc3200wifi/cfg80211.c7
-rw-r--r--drivers/net/wireless/libertas/cfg.c4
-rw-r--r--drivers/net/wireless/rndis_wlan.c12
3 files changed, 12 insertions, 11 deletions
diff --git a/drivers/net/wireless/iwmc3200wifi/cfg80211.c b/drivers/net/wireless/iwmc3200wifi/cfg80211.c
index 60619678f4ec..c6c0eff9b5ed 100644
--- a/drivers/net/wireless/iwmc3200wifi/cfg80211.c
+++ b/drivers/net/wireless/iwmc3200wifi/cfg80211.c
@@ -161,7 +161,7 @@ static int iwm_key_init(struct iwm_key *key, u8 key_index,
161} 161}
162 162
163static int iwm_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev, 163static int iwm_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
164 u8 key_index, const u8 *mac_addr, 164 u8 key_index, bool pairwise, const u8 *mac_addr,
165 struct key_params *params) 165 struct key_params *params)
166{ 166{
167 struct iwm_priv *iwm = ndev_to_iwm(ndev); 167 struct iwm_priv *iwm = ndev_to_iwm(ndev);
@@ -181,7 +181,8 @@ static int iwm_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,
181} 181}
182 182
183static int iwm_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev, 183static int iwm_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev,
184 u8 key_index, const u8 *mac_addr, void *cookie, 184 u8 key_index, bool pairwise, const u8 *mac_addr,
185 void *cookie,
185 void (*callback)(void *cookie, 186 void (*callback)(void *cookie,
186 struct key_params*)) 187 struct key_params*))
187{ 188{
@@ -206,7 +207,7 @@ static int iwm_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev,
206 207
207 208
208static int iwm_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev, 209static int iwm_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev,
209 u8 key_index, const u8 *mac_addr) 210 u8 key_index, bool pairwise, const u8 *mac_addr)
210{ 211{
211 struct iwm_priv *iwm = ndev_to_iwm(ndev); 212 struct iwm_priv *iwm = ndev_to_iwm(ndev);
212 struct iwm_key *key = &iwm->keys[key_index]; 213 struct iwm_key *key = &iwm->keys[key_index];
diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c
index cb3b855d949c..1dc44bc6511f 100644
--- a/drivers/net/wireless/libertas/cfg.c
+++ b/drivers/net/wireless/libertas/cfg.c
@@ -1438,7 +1438,7 @@ static int lbs_cfg_set_default_key(struct wiphy *wiphy,
1438 1438
1439 1439
1440static int lbs_cfg_add_key(struct wiphy *wiphy, struct net_device *netdev, 1440static int lbs_cfg_add_key(struct wiphy *wiphy, struct net_device *netdev,
1441 u8 idx, const u8 *mac_addr, 1441 u8 idx, bool pairwise, const u8 *mac_addr,
1442 struct key_params *params) 1442 struct key_params *params)
1443{ 1443{
1444 struct lbs_private *priv = wiphy_priv(wiphy); 1444 struct lbs_private *priv = wiphy_priv(wiphy);
@@ -1498,7 +1498,7 @@ static int lbs_cfg_add_key(struct wiphy *wiphy, struct net_device *netdev,
1498 1498
1499 1499
1500static int lbs_cfg_del_key(struct wiphy *wiphy, struct net_device *netdev, 1500static int lbs_cfg_del_key(struct wiphy *wiphy, struct net_device *netdev,
1501 u8 key_index, const u8 *mac_addr) 1501 u8 key_index, bool pairwise, const u8 *mac_addr)
1502{ 1502{
1503 1503
1504 lbs_deb_enter(LBS_DEB_CFG80211); 1504 lbs_deb_enter(LBS_DEB_CFG80211);
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
index 719573bbbf81..71b5971da597 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -540,11 +540,11 @@ static int rndis_set_channel(struct wiphy *wiphy, struct net_device *dev,
540 struct ieee80211_channel *chan, enum nl80211_channel_type channel_type); 540 struct ieee80211_channel *chan, enum nl80211_channel_type channel_type);
541 541
542static int rndis_add_key(struct wiphy *wiphy, struct net_device *netdev, 542static int rndis_add_key(struct wiphy *wiphy, struct net_device *netdev,
543 u8 key_index, const u8 *mac_addr, 543 u8 key_index, bool pairwise, const u8 *mac_addr,
544 struct key_params *params); 544 struct key_params *params);
545 545
546static int rndis_del_key(struct wiphy *wiphy, struct net_device *netdev, 546static int rndis_del_key(struct wiphy *wiphy, struct net_device *netdev,
547 u8 key_index, const u8 *mac_addr); 547 u8 key_index, bool pairwise, const u8 *mac_addr);
548 548
549static int rndis_set_default_key(struct wiphy *wiphy, struct net_device *netdev, 549static int rndis_set_default_key(struct wiphy *wiphy, struct net_device *netdev,
550 u8 key_index); 550 u8 key_index);
@@ -2308,8 +2308,8 @@ static int rndis_set_channel(struct wiphy *wiphy, struct net_device *netdev,
2308} 2308}
2309 2309
2310static int rndis_add_key(struct wiphy *wiphy, struct net_device *netdev, 2310static int rndis_add_key(struct wiphy *wiphy, struct net_device *netdev,
2311 u8 key_index, const u8 *mac_addr, 2311 u8 key_index, bool pairwise, const u8 *mac_addr,
2312 struct key_params *params) 2312 struct key_params *params)
2313{ 2313{
2314 struct rndis_wlan_private *priv = wiphy_priv(wiphy); 2314 struct rndis_wlan_private *priv = wiphy_priv(wiphy);
2315 struct usbnet *usbdev = priv->usbdev; 2315 struct usbnet *usbdev = priv->usbdev;
@@ -2344,7 +2344,7 @@ static int rndis_add_key(struct wiphy *wiphy, struct net_device *netdev,
2344} 2344}
2345 2345
2346static int rndis_del_key(struct wiphy *wiphy, struct net_device *netdev, 2346static int rndis_del_key(struct wiphy *wiphy, struct net_device *netdev,
2347 u8 key_index, const u8 *mac_addr) 2347 u8 key_index, bool pairwise, const u8 *mac_addr)
2348{ 2348{
2349 struct rndis_wlan_private *priv = wiphy_priv(wiphy); 2349 struct rndis_wlan_private *priv = wiphy_priv(wiphy);
2350 struct usbnet *usbdev = priv->usbdev; 2350 struct usbnet *usbdev = priv->usbdev;