diff options
author | Mateusz Kulikowski <mateusz.kulikowski@gmail.com> | 2015-03-31 18:24:35 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-04-03 09:29:30 -0400 |
commit | f7567e20708ed4129ccec1a21c4c55b9725b66d0 (patch) | |
tree | 2e3b99dda19c50f432243ddcaeeb7d655ef81d81 | |
parent | e8f05b0b01ea1593c8cc6311704c227fb0d08b04 (diff) |
staging: rtl8192e: Decrease nesting of rtllib_rx_auth_resp()
Return from rtllib_rx_auth_resp() if auth_parse() fails.
Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/rtl8192e/rtllib_softmac.c | 89 |
1 files changed, 45 insertions, 44 deletions
diff --git a/drivers/staging/rtl8192e/rtllib_softmac.c b/drivers/staging/rtl8192e/rtllib_softmac.c index 9266bc647bc4..9a4179cb926c 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) | |||
2322 | bool bSupportNmode = true, bHalfSupportNmode = false; | 2322 | bool bSupportNmode = true, bHalfSupportNmode = false; |
2323 | 2323 | ||
2324 | errcode = auth_parse(skb, &challenge, &chlen); | 2324 | errcode = auth_parse(skb, &challenge, &chlen); |
2325 | if (0 == errcode) { | ||
2326 | if (ieee->open_wep || !challenge) { | ||
2327 | ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATED; | ||
2328 | ieee->softmac_stats.rx_auth_rs_ok++; | ||
2329 | if (!(ieee->pHTInfo->IOTAction & | ||
2330 | HT_IOT_ACT_PURE_N_MODE)) { | ||
2331 | if (!ieee->GetNmodeSupportBySecCfg(ieee->dev)) { | ||
2332 | if (IsHTHalfNmodeAPs(ieee)) { | ||
2333 | bSupportNmode = true; | ||
2334 | bHalfSupportNmode = true; | ||
2335 | } else { | ||
2336 | bSupportNmode = false; | ||
2337 | bHalfSupportNmode = false; | ||
2338 | } | ||
2339 | } | ||
2340 | } | ||
2341 | /* Dummy wirless mode setting to avoid | ||
2342 | * encryption issue */ | ||
2343 | if (bSupportNmode) { | ||
2344 | ieee->SetWirelessMode(ieee->dev, | ||
2345 | ieee->current_network.mode); | ||
2346 | } else { | ||
2347 | /*TODO*/ | ||
2348 | ieee->SetWirelessMode(ieee->dev, | ||
2349 | IEEE_G); | ||
2350 | } | ||
2351 | 2325 | ||
2352 | if (ieee->current_network.mode == | 2326 | if (errcode) { |
2353 | IEEE_N_24G && bHalfSupportNmode) { | ||
2354 | netdev_info(ieee->dev, | ||
2355 | "======>enter half N mode\n"); | ||
2356 | ieee->bHalfWirelessN24GMode = | ||
2357 | true; | ||
2358 | } else | ||
2359 | ieee->bHalfWirelessN24GMode = | ||
2360 | false; | ||
2361 | |||
2362 | rtllib_associate_step2(ieee); | ||
2363 | } else { | ||
2364 | rtllib_auth_challenge(ieee, challenge, | ||
2365 | chlen); | ||
2366 | } | ||
2367 | } else { | ||
2368 | ieee->softmac_stats.rx_auth_rs_err++; | 2327 | ieee->softmac_stats.rx_auth_rs_err++; |
2369 | RTLLIB_DEBUG_MGMT("Authentication respose status code 0x%x", | 2328 | RTLLIB_DEBUG_MGMT("Authentication respose status code 0x%x", |
2370 | errcode); | 2329 | errcode); |
2371 | 2330 | ||
2372 | netdev_info(ieee->dev, | 2331 | netdev_info(ieee->dev, |
2373 | "Authentication respose status code 0x%x", | 2332 | "Authentication respose status code 0x%x", errcode); |
2374 | errcode); | ||
2375 | rtllib_associate_abort(ieee); | 2333 | rtllib_associate_abort(ieee); |
2334 | return; | ||
2335 | } | ||
2336 | |||
2337 | if (ieee->open_wep || !challenge) { | ||
2338 | ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATED; | ||
2339 | ieee->softmac_stats.rx_auth_rs_ok++; | ||
2340 | if (!(ieee->pHTInfo->IOTAction & | ||
2341 | HT_IOT_ACT_PURE_N_MODE)) { | ||
2342 | if (!ieee->GetNmodeSupportBySecCfg(ieee->dev)) { | ||
2343 | if (IsHTHalfNmodeAPs(ieee)) { | ||
2344 | bSupportNmode = true; | ||
2345 | bHalfSupportNmode = true; | ||
2346 | } else { | ||
2347 | bSupportNmode = false; | ||
2348 | bHalfSupportNmode = false; | ||
2349 | } | ||
2350 | } | ||
2351 | } | ||
2352 | /* Dummy wirless mode setting to avoid | ||
2353 | * encryption issue */ | ||
2354 | if (bSupportNmode) { | ||
2355 | ieee->SetWirelessMode(ieee->dev, | ||
2356 | ieee->current_network.mode); | ||
2357 | } else { | ||
2358 | /*TODO*/ | ||
2359 | ieee->SetWirelessMode(ieee->dev, | ||
2360 | IEEE_G); | ||
2361 | } | ||
2362 | |||
2363 | if (ieee->current_network.mode == | ||
2364 | IEEE_N_24G && bHalfSupportNmode) { | ||
2365 | netdev_info(ieee->dev, | ||
2366 | "======>enter half N mode\n"); | ||
2367 | ieee->bHalfWirelessN24GMode = | ||
2368 | true; | ||
2369 | } else | ||
2370 | ieee->bHalfWirelessN24GMode = | ||
2371 | false; | ||
2372 | |||
2373 | rtllib_associate_step2(ieee); | ||
2374 | } else { | ||
2375 | rtllib_auth_challenge(ieee, challenge, | ||
2376 | chlen); | ||
2376 | } | 2377 | } |
2377 | } | 2378 | } |
2378 | 2379 | ||