From nobody Mon Apr 6 15:50:40 2026 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 662B314A4F0 for ; Wed, 18 Mar 2026 22:56:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773874600; cv=none; b=ZdGGH0hkSEAH6lOmq3WEVCYeuPp5bzubZEXufN0AzBFPIlaaYQO7IQNTHMoE5uvA6ESk+8XLsZaFFZcTdf2n4bgYt5R/CkLqDVOdOVfm5RPR0k0FSQA/T+rAG+raia2uEXYm4QeQvdIIY/VAF1tBZz7vGMaOD5VT+A+QV/SMtro= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773874600; c=relaxed/simple; bh=4Vh0Hp2WnTXcZToVyNL+kCJNNq01xghYNTXdl8xkIds=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Uf1CF6RgdEX+YdymE3U8ufHvQeS3lE3zb4EIxwhoqy4JdtFWovqE5JrNjhJxARw3ei7sVzUqgTXQ+4naliOWXiDy5gKZbNx7U9j5pxBlrEZFEE63u+DgdXPclUQIJ03N+CegRwI8R4+kGxg+7DRWhokF/Zl+Ps1v82NsXhH8B90= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=U6uP0B07; arc=none smtp.client-ip=209.85.208.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="U6uP0B07" Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-667952fd262so668615a12.2 for ; Wed, 18 Mar 2026 15:56:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773874597; x=1774479397; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=AI37ocZBE7PjJ3M5c4x+eUfmaD6N83f1uXKcbpaDCA4=; b=U6uP0B079KfjTd8HNCBv2ug9+E9pojlvAPhXn8pUNloVGxv0Dm6YipMfrmYZ4kCOwf hAdLb691pf0uyGn75g8AtcxvDyJe2HCI1ZBU3qNJRpy0mPtV6gZJCN9hftHpl4xavgH9 VkQjGgSFdqCpuBZTO6gata2gxbnh8z2XX0qXXdW/FQAsz0MWKIs5mUmKUKjOzAk7O8Ls WkN9Is8gYyhz3qer+4NJ2OsDExxGQkITluZEpp3hJICO980VPY27JIAO4CtnWU2NcW0O 5B9QFMi6EpOZ8MfT8GtV5g3VFQ2phmKhfh9EAahTiI4NDk+mskUOZMR2KyWulzUOksER nZgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773874597; x=1774479397; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=AI37ocZBE7PjJ3M5c4x+eUfmaD6N83f1uXKcbpaDCA4=; b=LynHanNG0/YIVUVoIAb3bQNPv0MH5qmQxXk3AJIOmKI2mlgJm6iaSAaKZhw2Owjqep wp/LFkdbd/e2GkQ5u3yEo10fiP8xgPond+TeWQKBJZxL1b5Oqp87VfAk+zJnGAI4O6Of SFjSbySVOaaFBQ1bFAhVn1YynJd9QWdTxbRGQCjCFk83YeoiCUpZi7SGjuWWAnKXV05F OpaYfzX0kFgk5jghs5wdzdi+2vZ7McdVtWlOQJgvLPkJ6uD6ocUdJOeWMMeVxr5FyWhZ a+NZ5GfFD1b5JcNRMnPAAkPXeiHpZp+nW2RAfIyEWD6XVB2RmxNEoReTTkngMtTgb3Ry aZVA== X-Forwarded-Encrypted: i=1; AJvYcCVzURosyoIipFcGkCep35HYUuUlc6lHq6Jt1eLAx9b6X4wD4MZOpVk3QqQNxkgV0xrkUSpp2w0YgDltZ28=@vger.kernel.org X-Gm-Message-State: AOJu0YwAIpLGzLfHhENkraXwv1obN9AF9DzbIP/ptaVKFXWP4YB4BZBp gHnx7b3HE0FS/rtUqjCUjYJBDNnu+ppN2mJpI1p+68O4dxDgp4CBH+FQ X-Gm-Gg: ATEYQzzbvAYIau+mkbjiA1gXBqBscxEQIlmwBHZcIXiLx5rItGsEJDtTJ3HrijjPmsD u2MbaoIahvDyyNf5INRwBS2IS7dnc9Um9BhNALLXKhSEq7mk+ebNnrzNNGv4803i8KJfWyizU21 NqNgVOylpWR+Hbnw+qsj9rs/vz0vuSF5D/5Rfxsk4tRBZZ9YmcHtPQ7ujINWpOE2qvyt0zJxMe8 8TCST2dJ21QGLT6PGEqIMDGHmNPNFFiThS1PsRdmyEPgvtTOVdywOX2ofoXeWt2YJAAAtkYebJc rgl28EoDbx8BN0Q4LLRzP8OwQ34wI+YY2Svaky/PR9atvLmWShjYpaq3fHFN6NKs8qI6d3O9nd0 Y51iTJ/sxjhZ1WpcdkmkcEXtVA35V5XOH/mqYSD7UyorvYNgAUPB76qP12xp4u65A54uVuBhwo3 grcI3snO1PnSO2aOKolIJLKD/EQGy9vzYtt9JnVwLL6qJ7tA== X-Received: by 2002:a17:907:9811:b0:b94:24:44bb with SMTP id a640c23a62f3a-b97f49bd1dfmr331933866b.42.1773874596343; Wed, 18 Mar 2026 15:56:36 -0700 (PDT) Received: from localhost.localdomain ([2a00:f41:1cc8:c257:1410:43ff:fe11:dbdc]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b97f16d3380sm348022266b.42.2026.03.18.15.56.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Mar 2026 15:56:35 -0700 (PDT) From: "Jose A. Perez de Azpillaga" To: linux-staging@lists.linux.dev Cc: Greg Kroah-Hartman , Michael Straube , Hans de Goede , Khushal Chitturi , Dan Carpenter , Vivek BalachandharTN , Luka Gejak , Ethan Tidmore , Artur Stupa , Zhuoheng Li , Nino Zhang , linux-kernel@vger.kernel.org Subject: [PATCH] staging: rtl8723bs: Reduce indentation in rtw_joinbss_event_prehandle Date: Wed, 18 Mar 2026 23:55:44 +0100 Message-ID: <20260318225550.535368-1-azpijr@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The rtw_joinbss_event_prehandle function has excessive indentation due to deeply nested if-statements. Refactor the function using early returns and guard clauses for the failure paths. This flattens the code and significantly improves readability. Signed-off-by: Jose A. Perez de Azpillaga --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 158 ++++++++++++---------- 1 file changed, 83 insertions(+), 75 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rt= l8723bs/core/rtw_mlme.c index 2adc98c955fd..09344997730f 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -1176,83 +1176,20 @@ void rtw_joinbss_event_prehandle(struct adapter *ad= apter, u8 *pbuf) pmlmepriv->link_detect_info.traffic_transition_count =3D 0; pmlmepriv->link_detect_info.low_power_transition_count =3D 0; =20 - if (pnetwork->join_res > 0) { - spin_lock_bh(&pmlmepriv->scanned_queue.lock); - retry =3D 0; - if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) { - /* s1. find ptarget_wlan */ - if (check_fwstate(pmlmepriv, _FW_LINKED)) { - if (the_same_macaddr) { - ptarget_wlan =3D rtw_find_network(&pmlmepriv->scanned_queue, cur_netw= ork->network.mac_address); - } else { - pcur_wlan =3D rtw_find_network(&pmlmepriv->scanned_queue, cur_network= ->network.mac_address); - if (pcur_wlan) - pcur_wlan->fixed =3D false; - - pcur_sta =3D rtw_get_stainfo(pstapriv, cur_network->network.mac_addre= ss); - if (pcur_sta) - rtw_free_stainfo(adapter, pcur_sta); - - ptarget_wlan =3D rtw_find_network(&pmlmepriv->scanned_queue, pnetwork= ->network.mac_address); - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { - if (ptarget_wlan) - ptarget_wlan->fixed =3D true; - } - } - - } else { - ptarget_wlan =3D _rtw_find_same_network(&pmlmepriv->scanned_queue, pne= twork); - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { - if (ptarget_wlan) - ptarget_wlan->fixed =3D true; - } - } - - /* s2. update cur_network */ - if (ptarget_wlan) { - rtw_joinbss_update_network(adapter, ptarget_wlan, pnetwork); - } else { - netdev_dbg(adapter->pnetdev, - "Can't find ptarget_wlan when joinbss_event callback\n"); - spin_unlock_bh(&pmlmepriv->scanned_queue.lock); - goto ignore_joinbss_callback; - } - - /* s3. find ptarget_sta & update ptarget_sta after update cur_network o= nly for station mode */ - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { - ptarget_sta =3D rtw_joinbss_update_stainfo(adapter, pnetwork); - if (!ptarget_sta) { - spin_unlock_bh(&pmlmepriv->scanned_queue.lock); - goto ignore_joinbss_callback; - } - } - - /* s4. indicate connect */ - if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { - pmlmepriv->cur_network_scanned =3D ptarget_wlan; - rtw_indicate_connect(adapter); - } - - spin_unlock_bh(&pmlmepriv->scanned_queue.lock); - - spin_unlock_bh(&pmlmepriv->lock); - /* s5. Cancel assoc_timer */ - timer_delete_sync(&pmlmepriv->assoc_timer); - spin_lock_bh(&pmlmepriv->lock); - } else { - spin_unlock_bh(&pmlmepriv->scanned_queue.lock); - } - } else if (pnetwork->join_res =3D=3D -4) { + if (pnetwork->join_res =3D=3D -4) { rtw_reset_securitypriv(adapter); _set_timer(&pmlmepriv->assoc_timer, 1); =20 if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); =20 - } else {/* if join_res < 0 (join fails), then try again */ + goto ignore_joinbss_callback; + } + + if (pnetwork->join_res <=3D 0) { +#ifdef REJOIN + int res =3D _FAIL; =20 - #ifdef REJOIN - res =3D _FAIL; if (retry < 2) res =3D rtw_select_and_join_from_scanned_queue(pmlmepriv); =20 @@ -1260,21 +1197,92 @@ void rtw_joinbss_event_prehandle(struct adapter *ad= apter, u8 *pbuf) /* extend time of assoc_timer */ _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT); retry++; - } else if (res =3D=3D 2) {/* there is no need to wait for join */ + } else if (res =3D=3D 2) { /* there is no need to wait for join */ _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); rtw_indicate_connect(adapter); } else { - #endif - +#endif _set_timer(&pmlmepriv->assoc_timer, 1); _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); =20 - #ifdef REJOIN +#ifdef REJOIN retry =3D 0; } - #endif +#endif + goto ignore_joinbss_callback; + } + + spin_lock_bh(&pmlmepriv->scanned_queue.lock); + retry =3D 0; + + if (!check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) { + spin_unlock_bh(&pmlmepriv->scanned_queue.lock); + goto ignore_joinbss_callback; + } + + /* s1. find ptarget_wlan */ + if (check_fwstate(pmlmepriv, _FW_LINKED)) { + if (the_same_macaddr) { + ptarget_wlan =3D rtw_find_network(&pmlmepriv->scanned_queue, + cur_network->network.mac_address); + } else { + pcur_wlan =3D rtw_find_network(&pmlmepriv->scanned_queue, + cur_network->network.mac_address); + if (pcur_wlan) + pcur_wlan->fixed =3D false; + + pcur_sta =3D rtw_get_stainfo(pstapriv, cur_network->network.mac_address= ); + if (pcur_sta) + rtw_free_stainfo(adapter, pcur_sta); + + ptarget_wlan =3D rtw_find_network(&pmlmepriv->scanned_queue, + pnetwork->network.mac_address); + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { + if (ptarget_wlan) + ptarget_wlan->fixed =3D true; + } + } + } else { + ptarget_wlan =3D _rtw_find_same_network(&pmlmepriv->scanned_queue, pnetw= ork); + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { + if (ptarget_wlan) + ptarget_wlan->fixed =3D true; + } + } + + /* s2. update cur_network */ + if (!ptarget_wlan) { + netdev_dbg(adapter->pnetdev, "Can't find ptarget_wlan when joinbss_event= callback\n"); + spin_unlock_bh(&pmlmepriv->scanned_queue.lock); + goto ignore_joinbss_callback; + } + + rtw_joinbss_update_network(adapter, ptarget_wlan, pnetwork); + + /* s3. find ptarget_wlan & update ptarget_sta after update + * cur_network only for station mode + */ + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { + ptarget_sta =3D rtw_joinbss_update_stainfo(adapter, pnetwork); + if (!ptarget_sta) { + spin_unlock_bh(&pmlmepriv->scanned_queue.lock); + goto ignore_joinbss_callback; + } } =20 + /* s4. indicate connect */ + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { + pmlmepriv->cur_network_scanned =3D ptarget_wlan; + rtw_indicate_connect(adapter); + } + + spin_unlock_bh(&pmlmepriv->scanned_queue.lock); + + /* s5. cancel assoc_timer */ + spin_unlock_bh(&pmlmepriv->lock); + timer_delete_sync(&pmlmepriv->assoc_timer); + return; + ignore_joinbss_callback: =20 spin_unlock_bh(&pmlmepriv->lock); --=20 2.53.0