diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-10-05 13:39:30 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-10-06 16:30:40 -0400 |
commit | e31b82136d1adc7a599b6e99d3321e5831841f5a (patch) | |
tree | c72d78d4cccfd08587e909c7efe59956f1cbc23e /drivers | |
parent | 53f73c09d64f1fa7d7e6e8b6bb7468d42eddc92d (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.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/libertas/cfg.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/rndis_wlan.c | 12 |
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 | ||
163 | static int iwm_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev, | 163 | static 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 | ||
183 | static int iwm_cfg80211_get_key(struct wiphy *wiphy, struct net_device *ndev, | 183 | static 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 | ||
208 | static int iwm_cfg80211_del_key(struct wiphy *wiphy, struct net_device *ndev, | 209 | static 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 | ||
1440 | static int lbs_cfg_add_key(struct wiphy *wiphy, struct net_device *netdev, | 1440 | static 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 | ||
1500 | static int lbs_cfg_del_key(struct wiphy *wiphy, struct net_device *netdev, | 1500 | static 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 | ||
542 | static int rndis_add_key(struct wiphy *wiphy, struct net_device *netdev, | 542 | static 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 | ||
546 | static int rndis_del_key(struct wiphy *wiphy, struct net_device *netdev, | 546 | static 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 | ||
549 | static int rndis_set_default_key(struct wiphy *wiphy, struct net_device *netdev, | 549 | static 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 | ||
2310 | static int rndis_add_key(struct wiphy *wiphy, struct net_device *netdev, | 2310 | static 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 | ||
2346 | static int rndis_del_key(struct wiphy *wiphy, struct net_device *netdev, | 2346 | static 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; |