lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Wed, 29 Apr 2020 17:23:07 +0200
From:   Oscar Carter <oscar.carter@....com>
To:     Forest Bond <forest@...ttletooquiet.net>,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:     Oscar Carter <oscar.carter@....com>,
        Malcolm Priestley <tvboxspy@...il.com>,
        Quentin Deslandes <quentin.deslandes@...ev.co.uk>,
        "John B. Wyatt IV" <jbwyatt4@...il.com>,
        Colin Ian King <colin.king@...onical.com>,
        devel@...verdev.osuosl.org, linux-kernel@...r.kernel.org
Subject: [PATCH 2/2] staging: vt6656: Refactor the vnt_set_bss_mode function

Remove all the duplicate code in the "if, else if, else" statements as
all the branches in every "if" are almost the same. The only difference
between branches is some value. So, use variables instead of repeat
code.

Also, remove the unnecessary casting to u8 type because the
"priv->bb_type" variable is already an u8 tpe.

Signed-off-by: Oscar Carter <oscar.carter@....com>
---
 drivers/staging/vt6656/card.c | 68 ++++++++++++++++-------------------
 1 file changed, 31 insertions(+), 37 deletions(-)

diff --git a/drivers/staging/vt6656/card.c b/drivers/staging/vt6656/card.c
index 0854b70cb89f..3cb97c4daeb8 100644
--- a/drivers/staging/vt6656/card.c
+++ b/drivers/staging/vt6656/card.c
@@ -472,62 +472,56 @@ int vnt_radio_power_on(struct vnt_private *priv)
 int vnt_set_bss_mode(struct vnt_private *priv)
 {
 	int ret;
+	unsigned char type = priv->bb_type;
+	unsigned char data = 0;
+	unsigned char bb_vga_0 = 0x1c;
+	unsigned char bb_vga_2_3 = 0x00;

 	if (priv->rf_type == RF_AIROHA7230 && priv->bb_type == BB_TYPE_11A)
-		ret = vnt_mac_set_bb_type(priv, BB_TYPE_11G);
-	else
-		ret = vnt_mac_set_bb_type(priv, priv->bb_type);
+		type = BB_TYPE_11G;

+	ret = vnt_mac_set_bb_type(priv, type);
 	if (ret)
 		return ret;

 	priv->packet_type = vnt_get_pkt_type(priv);

-	if (priv->bb_type == BB_TYPE_11A)
-		ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
-					 0x88, 0x03);
-	else if (priv->bb_type == BB_TYPE_11B)
-		ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
-					 0x88, 0x02);
-	else if (priv->bb_type == BB_TYPE_11G)
+	if (priv->bb_type == BB_TYPE_11A) {
+		data = 0x03;
+		bb_vga_0 = 0x20;
+		bb_vga_2_3 = 0x10;
+	} else if (priv->bb_type == BB_TYPE_11B) {
+		data = 0x02;
+	} else if (priv->bb_type == BB_TYPE_11G) {
+		data = 0x08;
+	}
+
+	if (data) {
 		ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
-					 0x88, 0x08);
-	if (ret)
-		return ret;
+					 0x88, data);
+		if (ret)
+			return ret;
+	}

 	ret = vnt_update_ifs(priv);
 	if (ret)
 		return ret;

-	ret = vnt_set_rspinf(priv, (u8)priv->bb_type);
+	ret = vnt_set_rspinf(priv, priv->bb_type);
 	if (ret)
 		return ret;

-	if (priv->bb_type == BB_TYPE_11A) {
-		if (priv->rf_type == RF_AIROHA7230) {
-			priv->bb_vga[0] = 0x20;
+	if (priv->rf_type == RF_AIROHA7230) {
+		priv->bb_vga[0] = bb_vga_0;

-			ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
-						 0xe7, priv->bb_vga[0]);
-			if (ret)
-				return ret;
-		}
-
-		priv->bb_vga[2] = 0x10;
-		priv->bb_vga[3] = 0x10;
-	} else {
-		if (priv->rf_type == RF_AIROHA7230) {
-			priv->bb_vga[0] = 0x1c;
-
-			ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
-						 0xe7, priv->bb_vga[0]);
-			if (ret)
-				return ret;
-		}
-
-		priv->bb_vga[2] = 0x0;
-		priv->bb_vga[3] = 0x0;
+		ret = vnt_control_out_u8(priv, MESSAGE_REQUEST_BBREG,
+					 0xe7, priv->bb_vga[0]);
+		if (ret)
+			return ret;
 	}

+	priv->bb_vga[2] = bb_vga_2_3;
+	priv->bb_vga[3] = bb_vga_2_3;
+
 	return vnt_set_vga_gain_offset(priv, priv->bb_vga[0]);
 }
--
2.20.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ