UPSTREAM: wifi: nl80211: hold wdev mutex for station APIs
Since this will need to refer - at least in part - to the link stations of an MLD, hold the wdev mutex for driver convenience. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Bug: 253289327 Change-Id: Ied1bcd18d50c11be89c9f1570ac4ce56fea84728 (cherry picked from commit 3d1cc7cdf2e848181398837fe158bf0850d29ee6) Signed-off-by: Kiran Kumar Lokere <quic_klokere@quicinc.com>
This commit is contained in:
@@ -7042,7 +7042,9 @@ static int nl80211_set_station(struct sk_buff *skb, struct genl_info *info)
|
||||
}
|
||||
|
||||
/* driver will call cfg80211_check_station_change() */
|
||||
wdev_lock(dev->ieee80211_ptr);
|
||||
err = rdev_change_station(rdev, dev, mac_addr, ¶ms);
|
||||
wdev_unlock(dev->ieee80211_ptr);
|
||||
|
||||
out_put_vlan:
|
||||
dev_put(params.vlan);
|
||||
@@ -7298,7 +7300,9 @@ static int nl80211_new_station(struct sk_buff *skb, struct genl_info *info)
|
||||
|
||||
/* be aware of params.vlan when changing code here */
|
||||
|
||||
wdev_lock(dev->ieee80211_ptr);
|
||||
err = rdev_add_station(rdev, dev, mac_addr, ¶ms);
|
||||
wdev_unlock(dev->ieee80211_ptr);
|
||||
|
||||
dev_put(params.vlan);
|
||||
return err;
|
||||
@@ -7309,6 +7313,7 @@ static int nl80211_del_station(struct sk_buff *skb, struct genl_info *info)
|
||||
struct cfg80211_registered_device *rdev = info->user_ptr[0];
|
||||
struct net_device *dev = info->user_ptr[1];
|
||||
struct station_del_parameters params;
|
||||
int ret;
|
||||
|
||||
memset(¶ms, 0, sizeof(params));
|
||||
|
||||
@@ -7356,7 +7361,11 @@ static int nl80211_del_station(struct sk_buff *skb, struct genl_info *info)
|
||||
params.reason_code = WLAN_REASON_PREV_AUTH_NOT_VALID;
|
||||
}
|
||||
|
||||
return rdev_del_station(rdev, dev, ¶ms);
|
||||
wdev_lock(dev->ieee80211_ptr);
|
||||
ret = rdev_del_station(rdev, dev, ¶ms);
|
||||
wdev_unlock(dev->ieee80211_ptr);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int nl80211_send_mpath(struct sk_buff *msg, u32 portid, u32 seq,
|
||||
|
||||
Reference in New Issue
Block a user