Skip to content

Commit

Permalink
nl80211: clarify code in nl80211_del_station()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Johannes Berg committed Mar 20, 2020
1 parent 7fc82af commit 306b79e
Showing 1 changed file with 14 additions and 8 deletions.
22 changes: 14 additions & 8 deletions net/wireless/nl80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 306b79e

Please sign in to comment.