[PATCH v2 11/24] staging: ks7010: fix multi-way decision

Tobin C. Harding me at tobin.cc
Wed Apr 5 00:42:14 UTC 2017


Multi-way decision contains two anomalies.

Firstly, a local variable is defined to be the inverse truth variable
of a struct member. This local variable is used as the conditional to
the multi-way decision. This is unnecessary, the same logic can be
expressed using the struct member directly.

Secondly, there are four branches in the multi-way decision, two of
which can never be executed. This is dead code.

Remove unnecessary local variable. Remove two branches of multi-way
decision statement that can never be executed.

Signed-off-by: Tobin C. Harding <me at tobin.cc>
---
 drivers/staging/ks7010/ks_wlan_net.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/ks7010/ks_wlan_net.c b/drivers/staging/ks7010/ks_wlan_net.c
index e86e5e2..89fcd23 100644
--- a/drivers/staging/ks7010/ks_wlan_net.c
+++ b/drivers/staging/ks7010/ks_wlan_net.c
@@ -1199,27 +1199,17 @@ static int ks_wlan_set_power(struct net_device *dev,
 {
 	struct ks_wlan_private *priv =
 	    (struct ks_wlan_private *)netdev_priv(dev);
-	short enabled;
 
 	if (priv->sleep_mode == SLP_SLEEP)
 		return -EPERM;
 
-	/* for SLEEP MODE */
-	enabled = vwrq->disabled ? 0 : 1;
-	if (enabled == 0) {	/* 0 */
+	if (vwrq->disabled) {
 		priv->reg.powermgt = POWMGT_ACTIVE_MODE;
-	} else if (enabled) {	/* 1 */
+	} else {
 		if (priv->reg.operation_mode == MODE_INFRASTRUCTURE)
 			priv->reg.powermgt = POWMGT_SAVE1_MODE;
 		else
 			return -EINVAL;
-	} else if (enabled) {	/* 2 */
-		if (priv->reg.operation_mode == MODE_INFRASTRUCTURE)
-			priv->reg.powermgt = POWMGT_SAVE2_MODE;
-		else
-			return -EINVAL;
-	} else {
-		return -EINVAL;
 	}
 
 	hostif_sme_enqueue(priv, SME_POW_MNGMT_REQUEST);
-- 
2.7.4



More information about the devel mailing list