if (err)
return err;
+ wdev_lock(dev->ieee80211_ptr);
if (add)
- return rdev_add_link_station(rdev, dev, ¶ms);
- return rdev_mod_link_station(rdev, dev, ¶ms);
+ err = rdev_add_link_station(rdev, dev, ¶ms);
+ else
+ err = rdev_mod_link_station(rdev, dev, ¶ms);
+ wdev_unlock(dev->ieee80211_ptr);
+
+ return err;
}
static int
struct link_station_del_parameters params = {};
struct cfg80211_registered_device *rdev = info->user_ptr[0];
struct net_device *dev = info->user_ptr[1];
+ int ret;
if (!rdev->ops->del_link_station)
return -EOPNOTSUPP;
params.mld_mac = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
params.link_id = nla_get_u8(info->attrs[NL80211_ATTR_MLO_LINK_ID]);
- return rdev_del_link_station(rdev, dev, ¶ms);
+ wdev_lock(dev->ieee80211_ptr);
+ ret = rdev_del_link_station(rdev, dev, ¶ms);
+ wdev_unlock(dev->ieee80211_ptr);
+
+ return ret;
}
#define NL80211_FLAG_NEED_WIPHY 0x01