From nobody Sat Apr 4 06:04:32 2026 Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) (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 1E12340DFA6 for ; Fri, 20 Mar 2026 15:47:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774021669; cv=none; b=A7Ny4Q7yFkbGqsi82P/UKXiZQhaSCf2LOMk3y/7nTnitaknQBELZN5TZYibG2M2KwaPTKs7QDOpfnZ5C7Cirmqp8BQas2VFpg+Ngox+QH0vFzArJZqK95etpF2WduthMdty2CVRqw3wFgEEgjObbQAPC2GiMr6dOw3QaEeW39fk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774021669; c=relaxed/simple; bh=MWmxiiGSvJIN69qS1vFWxFdi8elmqCIq3V3OIGWD4Xw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LftHOE18t1YhP0eK3gt7BHssIQ7qJEsPamAKyOh7fkYRyBFCSVUx5/5p6anEfEJUfVgvUIldco4opKJxpf7PG7ysbKq5HA/sbCW7aRSjSHZU/pw/jr8HlHBxTnnk97UdMuLbbQKbwFw5B1J0H9YiA7ifS+Xf91vMa8QIQ2nwgzI= 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=KQiqIyHb; arc=none smtp.client-ip=209.85.218.45 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="KQiqIyHb" Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-b8d7f22d405so312985666b.0 for ; Fri, 20 Mar 2026 08:47:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774021666; x=1774626466; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1/GS64vkzSKPEbLFLQ/XpxIQ3rnQ73rFXLw8JIxcZKs=; b=KQiqIyHbA+7DxX6LHXgKSyNnnW/YPt1CFGXsC6JP0TqwQIfrpGgOWJJhNTLA3HRLH/ fWH7zzPIOmFVexzJzx1ePdcCcr5A4jttbQPLKvsav8lQxiiVpRiOxlhUHTRoFrPfLoZ7 ceUwCiynMQqRZM0B7JhulEFyotApgv7tvM+hHjuDWk5ylkpFC5o07WPU13iwKnLG4LFd cbzg0aRrNG1ATtByBkpoGJ3/Zg/Ze/bdIJ40fn2btevWYq2ekj/ZidVdKFtwdKMq2qGh Oaj5FlRy7JPEuzCNerhq7p+OqyDuROO0r9+J41/HTBZWf4gohERyo5q7MM75mpAUUz3/ Tjng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774021666; x=1774626466; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1/GS64vkzSKPEbLFLQ/XpxIQ3rnQ73rFXLw8JIxcZKs=; b=phJq/jDrlLjnZuJsbo6u0gw3NABaS2fop+u0p/VAdMhBAqaughfWxu3eak4mZN5IRL biWoGHeOvHrb06A00Qk5WxJkK1ny4gs5GYWbNRusqkK0VuRXqxCitMYsVIYk2lj0lUUE Ll2tuW0BJ7EBGR+kObT/gSDbqlZXCj5af/JzYIMUIUdnWgAfPf11bRho3r6BsBUu7qiz s5tPyqPAe9KFZMQ7Tjqyu+aApcnYK7o/hP7h6gCjdGWV8G/SqWvNZ2XayCnaeUZYOU67 3/FsgxIH3x7JiF9KnrUPOGVSO8jRJTUhAU1X3+ppjO9q8gnNfSquzKxi1QbvHfI5Ji2e /dLw== X-Forwarded-Encrypted: i=1; AJvYcCXQs8ard8pOuhhEbh6z6VniJaDUM3b4CxtYhXiXxZRk2Q9E5hb6OEQ1LcNzOo0iZYxtJWnsFUHCjONtfNI=@vger.kernel.org X-Gm-Message-State: AOJu0Yxc/U966aJcivRJbIBqHYRzzEauVCK3UleEXiZdXvL5HBwGtB4V IGNkrVhhYOzfpQC9HMPz64lXyLDCuz2U5v4eILMPCio58azeUIbwoY9S X-Gm-Gg: ATEYQzzZ9bzK/vMdIrEEQRcYd8ChW8HwMcXcfOw+Z3UwaK7n3D6t4evFMeOoTA9cCxL tp+HnvqlqmXsrKz9QuDqTCpnq/pbkeHXJYFCgXX2xx19N9TE8FH6ezS/REGOiLcdFmRBMjSlJub c4MVuNunJZrqh5nOQWwWoyDK0wNop8EbFvQqlhDCNyK9vlWpwF1dZX5QlA9duIZTwXGrEnhWbJo C3Xb7fhpC9eXqRXjDMPbnyoZhu0rQAbFTSVmi2CaP4Fz9G3DT2t8Bh+SVjGH+Kah5gHcxU5+KsU z/BoovkopaEU4coE18vdJxkxyU951sdnKKfVdkoDWkt8ryabCtE8ld87oUNhpWj8hFqwFTN4jE8 KPOmQfLQZ3xtMdeEaVKN0/hZCog5eVleA040undrX7+Cpa6+vTulBztPkcsIuu3+P0Ca1qI91ve Ywq+nLsIuA7w373TVtfLL90raQXFlE9q/sd+4UBk/Tovm8MQ== X-Received: by 2002:a17:907:874c:b0:b98:29fb:f32 with SMTP id a640c23a62f3a-b982f20c0c8mr243966066b.1.1774021665969; Fri, 20 Mar 2026 08:47:45 -0700 (PDT) Received: from localhost.localdomain ([2a00:f41:1cd8:5427:4c74:c4ff:fe18:7da5]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832f8d3d0sm173658966b.19.2026.03.20.08.47.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 08:47:45 -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 , Ethan Tidmore , Luka Gejak , Vivek BalachandharTN , Artur Stupa , Zhuoheng Li , Nino Zhang , linux-kernel@vger.kernel.org Subject: [PATCH v3 2/2] staging: rtl8723bs: refactor rtw_joinbss_event_prehandle to reduce indentation Date: Fri, 20 Mar 2026 16:47:17 +0100 Message-ID: <20260320154724.603847-3-azpijr@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260320154724.603847-1-azpijr@gmail.com> References: <20260320154724.603847-1-azpijr@gmail.com> 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 | 136 +++++++++++----------- 1 file changed, 71 insertions(+), 65 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rt= l8723bs/core/rtw_mlme.c index 4bf6d1865391..3b16d3fadd54 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -1174,86 +1174,92 @@ 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); - 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; - } - } + if (pnetwork->join_res =3D=3D -4) { + rtw_reset_securitypriv(adapter); + _set_timer(&pmlmepriv->assoc_timer, 1); =20 - } 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; - } - } + if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) + _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); =20 - /* 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; - } + spin_unlock_bh(&pmlmepriv->lock); + return; + } =20 - /* 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; - } - } + if (pnetwork->join_res <=3D 0) { /* if join_res < 0 (join fails), then tr= y again */ + _set_timer(&pmlmepriv->assoc_timer, 1); + _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); + spin_unlock_bh(&pmlmepriv->lock); + return; + } + + spin_lock_bh(&pmlmepriv->scanned_queue.lock); + + if (!check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) { + spin_unlock_bh(&pmlmepriv->scanned_queue.lock); + spin_unlock_bh(&pmlmepriv->lock); + return; + } + + /* s1. find ptarget_wlan */ + if (check_fwstate(pmlmepriv, _FW_LINKED)) { + if (the_same_macaddr) { + ptarget_wlan =3D rtw_find_network(&pmlmepriv->scanned_queue, cur_networ= k->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; =20 - /* s4. indicate connect */ + 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)) { - pmlmepriv->cur_network_scanned =3D ptarget_wlan; - rtw_indicate_connect(adapter); + 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; + } + } =20 - spin_unlock_bh(&pmlmepriv->scanned_queue.lock); + /* 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); + spin_unlock_bh(&pmlmepriv->lock); + return; + } =20 - spin_unlock_bh(&pmlmepriv->lock); - /* s5. Cancel assoc_timer */ - timer_delete_sync(&pmlmepriv->assoc_timer); - spin_lock_bh(&pmlmepriv->lock); - } else { + rtw_joinbss_update_network(adapter, ptarget_wlan, pnetwork); + + /* s3. find ptarget_sta & update ptarget_sta after update cur_network onl= y 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); + spin_unlock_bh(&pmlmepriv->lock); + return; } - } else if (pnetwork->join_res =3D=3D -4) { - rtw_reset_securitypriv(adapter); - _set_timer(&pmlmepriv->assoc_timer, 1); - - if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) - _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); + } =20 - } else {/* if join_res < 0 (join fails), then try again */ - _set_timer(&pmlmepriv->assoc_timer, 1); - _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); + /* s4. indicate connect */ + if (check_fwstate(pmlmepriv, WIFI_STATION_STATE)) { + pmlmepriv->cur_network_scanned =3D ptarget_wlan; + rtw_indicate_connect(adapter); } =20 -ignore_joinbss_callback: + spin_unlock_bh(&pmlmepriv->scanned_queue.lock); =20 spin_unlock_bh(&pmlmepriv->lock); + /* s5. Cancel assoc_timer */ + timer_delete_sync(&pmlmepriv->assoc_timer); + return; } =20 void rtw_joinbss_event_callback(struct adapter *adapter, u8 *pbuf) --=20 2.53.0