]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
nl80211: clarify code in nl80211_del_station()
authorJohannes Berg <johannes.berg@intel.com>
Fri, 20 Mar 2020 10:38:35 +0000 (11:38 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 20 Mar 2020 13:42:20 +0000 (14:42 +0100)
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>
net/wireless/nl80211.c

index bc7d81231547cdad759227a1541c06fee96f4864..ad87e9db9a911e38569db38091ad89c8b222972f 100644 (file)
@@ -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;