[PATCH 10/11] staging: rtl8192e: Decrease nesting of rtllib_rx_auth_resp()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Return from rtllib_rx_auth_resp() if auth_parse() fails.

Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@xxxxxxxxx>
---
 drivers/staging/rtl8192e/rtllib_softmac.c | 89 ++++++++++++++++---------------
 1 file changed, 45 insertions(+), 44 deletions(-)

diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c
index 9266bc6..9a4179c 100644
--- a/drivers/staging/rtl8192e/rtllib_softmac.c
+++ b/drivers/staging/rtl8192e/rtllib_softmac.c
@@ -2322,57 +2322,58 @@ static void rtllib_rx_auth_resp(struct rtllib_device *ieee, struct sk_buff *skb)
 	bool bSupportNmode = true, bHalfSupportNmode = false;
 
 	errcode = auth_parse(skb, &challenge, &chlen);
-	if (0 == errcode) {
-		if (ieee->open_wep || !challenge) {
-			ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATED;
-			ieee->softmac_stats.rx_auth_rs_ok++;
-			if (!(ieee->pHTInfo->IOTAction &
-			    HT_IOT_ACT_PURE_N_MODE)) {
-				if (!ieee->GetNmodeSupportBySecCfg(ieee->dev)) {
-					if (IsHTHalfNmodeAPs(ieee)) {
-						bSupportNmode = true;
-						bHalfSupportNmode = true;
-					} else {
-						bSupportNmode = false;
-						bHalfSupportNmode = false;
-					}
-				}
-			}
-			/* Dummy wirless mode setting to avoid
-			 * encryption issue */
-			if (bSupportNmode) {
-				ieee->SetWirelessMode(ieee->dev,
-				   ieee->current_network.mode);
-			} else {
-				/*TODO*/
-				ieee->SetWirelessMode(ieee->dev,
-						      IEEE_G);
-			}
 
-			if (ieee->current_network.mode ==
-			    IEEE_N_24G && bHalfSupportNmode) {
-				netdev_info(ieee->dev,
-					    "======>enter half N mode\n");
-				ieee->bHalfWirelessN24GMode =
-							 true;
-			} else
-				ieee->bHalfWirelessN24GMode =
-							 false;
-
-			rtllib_associate_step2(ieee);
-		} else {
-			rtllib_auth_challenge(ieee, challenge,
-					      chlen);
-		}
-	} else {
+	if (errcode) {
 		ieee->softmac_stats.rx_auth_rs_err++;
 		RTLLIB_DEBUG_MGMT("Authentication respose status code 0x%x",
 				  errcode);
 
 		netdev_info(ieee->dev,
-			    "Authentication respose status code 0x%x",
-			    errcode);
+				"Authentication respose status code 0x%x", errcode);
 		rtllib_associate_abort(ieee);
+		return;
+	}
+
+	if (ieee->open_wep || !challenge) {
+		ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATED;
+		ieee->softmac_stats.rx_auth_rs_ok++;
+		if (!(ieee->pHTInfo->IOTAction &
+		    HT_IOT_ACT_PURE_N_MODE)) {
+			if (!ieee->GetNmodeSupportBySecCfg(ieee->dev)) {
+				if (IsHTHalfNmodeAPs(ieee)) {
+					bSupportNmode = true;
+					bHalfSupportNmode = true;
+				} else {
+					bSupportNmode = false;
+					bHalfSupportNmode = false;
+				}
+			}
+		}
+		/* Dummy wirless mode setting to avoid
+		 * encryption issue */
+		if (bSupportNmode) {
+			ieee->SetWirelessMode(ieee->dev,
+			   ieee->current_network.mode);
+		} else {
+			/*TODO*/
+			ieee->SetWirelessMode(ieee->dev,
+					      IEEE_G);
+		}
+
+		if (ieee->current_network.mode ==
+		    IEEE_N_24G && bHalfSupportNmode) {
+			netdev_info(ieee->dev,
+				    "======>enter half N mode\n");
+			ieee->bHalfWirelessN24GMode =
+						 true;
+		} else
+			ieee->bHalfWirelessN24GMode =
+						 false;
+
+		rtllib_associate_step2(ieee);
+	} else {
+		rtllib_auth_challenge(ieee, challenge,
+				      chlen);
 	}
 }
 
-- 
1.8.4.1

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux