nl80211: clarify code in nl80211_del_station()
The long if chain of interface types is hard to read, especially now with the additional condition after it. Use a switch statement to clarify this code. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Link: https://lore.kernel.org/r/20200320113834.2c51b9e8e341.I3fa5dc3f7d3cb1dbbd77191d764586f7da993f3f@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
7fc82af856
commit
306b79ea6e
|
@ -6285,16 +6285,22 @@ static int nl80211_del_station(struct sk_buff *skb, struct genl_info *info)
|
|||
if (info->attrs[NL80211_ATTR_MAC])
|
||||
params.mac = nla_data(info->attrs[NL80211_ATTR_MAC]);
|
||||
|
||||
if (dev->ieee80211_ptr->iftype != NL80211_IFTYPE_AP &&
|
||||
dev->ieee80211_ptr->iftype != NL80211_IFTYPE_AP_VLAN &&
|
||||
dev->ieee80211_ptr->iftype != NL80211_IFTYPE_MESH_POINT &&
|
||||
dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO &&
|
||||
dev->ieee80211_ptr->iftype != NL80211_IFTYPE_ADHOC)
|
||||
switch (dev->ieee80211_ptr->iftype) {
|
||||
case NL80211_IFTYPE_AP:
|
||||
case NL80211_IFTYPE_AP_VLAN:
|
||||
case NL80211_IFTYPE_MESH_POINT:
|
||||
case NL80211_IFTYPE_P2P_GO:
|
||||
/* always accept these */
|
||||
break;
|
||||
case NL80211_IFTYPE_ADHOC:
|
||||
/* conditionally accept */
|
||||
if (wiphy_ext_feature_isset(&rdev->wiphy,
|
||||
NL80211_EXT_FEATURE_DEL_IBSS_STA))
|
||||
break;
|
||||
return -EINVAL;
|
||||
if (dev->ieee80211_ptr->iftype == NL80211_IFTYPE_ADHOC &&
|
||||
!wiphy_ext_feature_isset(&rdev->wiphy,
|
||||
NL80211_EXT_FEATURE_DEL_IBSS_STA))
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!rdev->ops->del_station)
|
||||
return -EOPNOTSUPP;
|
||||
|
|
Loading…
Reference in New Issue