aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless/nl80211.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-05-15 11:44:01 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-05-24 18:02:22 -0400
commit83739b03de97049181d711c95200b94a14d3f693 (patch)
tree8a787da34dd5fcaea9da9e7bfb54f72fbe686f9e /net/wireless/nl80211.c
parent91bf9b26fc95c505846bc2f744a73b51f2aaee1d (diff)
cfg80211: remove some locked wrappers from sme API
By making all the API functions require wdev locking we can clean up the API a bit, getting rid of the locking version of each function. This also decreases the size of cfg80211 by a small amount. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/nl80211.c')
-rw-r--r--net/wireless/nl80211.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 49c2f2f511dc..a09f36bb957c 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -6683,7 +6683,9 @@ static int nl80211_connect(struct sk_buff *skb, struct genl_info *info)
6683 sizeof(connect.vht_capa)); 6683 sizeof(connect.vht_capa));
6684 } 6684 }
6685 6685
6686 err = cfg80211_connect(rdev, dev, &connect, connkeys); 6686 wdev_lock(dev->ieee80211_ptr);
6687 err = cfg80211_connect(rdev, dev, &connect, connkeys, NULL);
6688 wdev_unlock(dev->ieee80211_ptr);
6687 if (err) 6689 if (err)
6688 kfree(connkeys); 6690 kfree(connkeys);
6689 return err; 6691 return err;
@@ -6694,6 +6696,7 @@ static int nl80211_disconnect(struct sk_buff *skb, struct genl_info *info)
6694 struct cfg80211_registered_device *rdev = info->user_ptr[0]; 6696 struct cfg80211_registered_device *rdev = info->user_ptr[0];
6695 struct net_device *dev = info->user_ptr[1]; 6697 struct net_device *dev = info->user_ptr[1];
6696 u16 reason; 6698 u16 reason;
6699 int ret;
6697 6700
6698 if (!info->attrs[NL80211_ATTR_REASON_CODE]) 6701 if (!info->attrs[NL80211_ATTR_REASON_CODE])
6699 reason = WLAN_REASON_DEAUTH_LEAVING; 6702 reason = WLAN_REASON_DEAUTH_LEAVING;
@@ -6707,7 +6710,10 @@ static int nl80211_disconnect(struct sk_buff *skb, struct genl_info *info)
6707 dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT) 6710 dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_CLIENT)
6708 return -EOPNOTSUPP; 6711 return -EOPNOTSUPP;
6709 6712
6710 return cfg80211_disconnect(rdev, dev, reason, true); 6713 wdev_lock(dev->ieee80211_ptr);
6714 ret = cfg80211_disconnect(rdev, dev, reason, true);
6715 wdev_unlock(dev->ieee80211_ptr);
6716 return ret;
6711} 6717}
6712 6718
6713static int nl80211_wiphy_netns(struct sk_buff *skb, struct genl_info *info) 6719static int nl80211_wiphy_netns(struct sk_buff *skb, struct genl_info *info)