staging: ks7010: remove multi-way decision
authorTobin C. Harding <me@tobin.cc>
Mon, 10 Apr 2017 03:16:00 +0000 (13:16 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Apr 2017 14:14:33 +0000 (16:14 +0200)
Function uses multi-way decision for control flow. Final statement of
function is spin_unlock(). Code can be simplified by adding a goto label
labelling the call to spin_unlock() and jumping to label instead of
using multi-way decision. This allows the code to be indented one
level less which adds to the readability.

Add goto label. Remove multi-way decision by jumping to label. Reduce
indentation in subsequent code. Do not change program logic.

Signed-off-by: Tobin C. Harding <me@tobin.cc>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ks7010/ks_hostif.c

index a505c4ec6f32b175f645fa1db0de9bf4dfdec4c9..597280882dc8a648206d7a56ac066688eb6625e0 100644 (file)
@@ -2241,36 +2241,38 @@ void hostif_sme_multicast_set(struct ks_wlan_private *priv)
                hostif_mib_set_request(priv, LOCAL_MULTICAST_FILTER,
                                       sizeof(filter_type), MIB_VALUE_TYPE_BOOL,
                                       &filter_type);
-       } else if ((netdev_mc_count(dev) > NIC_MAX_MCAST_LIST) ||
-                  (dev->flags & IFF_ALLMULTI)) {
+               goto spin_unlock;
+       }
+
+       if ((netdev_mc_count(dev) > NIC_MAX_MCAST_LIST) ||
+           (dev->flags & IFF_ALLMULTI)) {
                filter_type = cpu_to_le32((uint32_t)MCAST_FILTER_MCASTALL);
                hostif_mib_set_request(priv, LOCAL_MULTICAST_FILTER,
                                       sizeof(filter_type), MIB_VALUE_TYPE_BOOL,
                                       &filter_type);
-       } else {
-               if (priv->sme_i.sme_flag & SME_MULTICAST) {
-                       mc_count = netdev_mc_count(dev);
-                       netdev_for_each_mc_addr(ha, dev) {
-                               memcpy(&set_address[i * ETH_ALEN], ha->addr,
-                                      ETH_ALEN);
-                               i++;
-                       }
-                       priv->sme_i.sme_flag &= ~SME_MULTICAST;
-                       hostif_mib_set_request(priv, LOCAL_MULTICAST_ADDRESS,
-                                              (ETH_ALEN * mc_count),
-                                              MIB_VALUE_TYPE_OSTRING,
-                                              &set_address[0]);
-               } else {
-                       filter_type =
-                           cpu_to_le32((uint32_t)MCAST_FILTER_MCAST);
-                       priv->sme_i.sme_flag |= SME_MULTICAST;
-                       hostif_mib_set_request(priv, LOCAL_MULTICAST_FILTER,
-                                              sizeof(filter_type),
-                                              MIB_VALUE_TYPE_BOOL,
-                                              &filter_type);
+               goto spin_unlock;
+       }
+
+       if (priv->sme_i.sme_flag & SME_MULTICAST) {
+               mc_count = netdev_mc_count(dev);
+               netdev_for_each_mc_addr(ha, dev) {
+                       memcpy(&set_address[i * ETH_ALEN], ha->addr, ETH_ALEN);
+                       i++;
                }
+               priv->sme_i.sme_flag &= ~SME_MULTICAST;
+               hostif_mib_set_request(priv, LOCAL_MULTICAST_ADDRESS,
+                                      ETH_ALEN * mc_count,
+                                      MIB_VALUE_TYPE_OSTRING,
+                                      &set_address[0]);
+       } else {
+               filter_type = cpu_to_le32((uint32_t)MCAST_FILTER_MCAST);
+               priv->sme_i.sme_flag |= SME_MULTICAST;
+               hostif_mib_set_request(priv, LOCAL_MULTICAST_FILTER,
+                                      sizeof(filter_type), MIB_VALUE_TYPE_BOOL,
+                                      &filter_type);
        }
 
+spin_unlock:
        spin_unlock(&priv->multicast_spin);
 }