From nobody Sat Apr 4 00:05:57 2026 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) (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 E81CD311C32 for ; Sat, 21 Mar 2026 18:27:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774117664; cv=none; b=dX+Dq4fw4xhSuMAa6d1bfCpq2uQu/GVRj5RMLaBHZtl2UgOlx+PyI3UYi+VhP+vUad6cARU12vJvYQAcoz1mcp2OV7y5axm9Jr61bWcLNBQLiArlKdBLoF6bdMgbOLew90ZdGu7l9vXgiPR0PILVGQ4zuJozGu+KROKlzzRJF6A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774117664; c=relaxed/simple; bh=WbWd8XVKq0IbLo2RMHjF6fy7pnGU/YhqCsnztdvUZWE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nLmDzruo15R/Fse/j0wbJ124W3he1xzUm6bm/VFA/JRtE1vBVtbpNMooMLjU6WU07ijLGmOpXd6IacHLXkSzKCZs5RwaoJ2oEzw1pf6jRyPwmBkqUpvaoUtCaz+FUfwfHWfwE4hVvZMcVNjGe5/JZqyl6Utu4mZzXihRawsQesE= 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=RI69bcYw; arc=none smtp.client-ip=209.85.218.54 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="RI69bcYw" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-b98133bdc4bso348815366b.0 for ; Sat, 21 Mar 2026 11:27:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774117661; x=1774722461; 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=SbJQ9CIu17gJV0ywiqimKBYYJO7ITeaFVsiuBHllRd0=; b=RI69bcYw3clwVeLWvUBkIH4fBMgbMiauTWGHwt9qxTVGMDwq2iLTfk+OsELTJwPjyu nMHTvmPI9LPCRzOHPB3PZX5Rzu04EFoCqXDnK6qo/er1ibG11GTY0nBvGo84TYjQC5AF fxnDQG7wjpZqiZOAQGHc9RZtZ5QdNPFx9YYmDjXz2qdahJyqT4QBzxOkhFZceN9bqZsf 76KQdfhO0UAjUoNeQpN6o/8OC3CNbzjkjTDaonP5CsqRdw8OUxMYDD+RPepG4biQjjl4 UmaRXvGtaGLYwBADLL2+kOOo0OX/gAcZJmujNVamkqFjYD1v7a/TkuxzDlv7Z0gvPtds 1HOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774117661; x=1774722461; 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=SbJQ9CIu17gJV0ywiqimKBYYJO7ITeaFVsiuBHllRd0=; b=IRotgvrv1Ww3DBAR++VBEZfUkEE2ZHRzIqnSxPBi2YlwaTQkLGtv3jFf5jtowUzTpn p35kkS95Xq19FIGbsKlmsXJnIez3GfTfjPt1D4e9a9k41uyqkP2fLS5ji7vtR/73cJaA VImVQgwqWZ/7i89H3w/XtWFMyZK5t0DC981PS8xy/KslNB5+w6iHs7cPNDYjtjG3jz1o yyKR+DH67iwwdH14TRsim368iqF9E4mLfNlOnya01TdvSyaTQnW0lzjWmUHSqU5Gwb1q fDaSV7g/1IYIMfTaTrFzxFl5NNfxDhAZoWGrBIqozLbMgmPgchN/o7GstAk6lhICy7p0 lVSA== X-Forwarded-Encrypted: i=1; AJvYcCX9iOWiAQTh9nyrL+UCnxNzu9NqiHul/zaoUSMU2NxF3cHyX6oGkn/vEM7JrApLZcjg17BZrp54qREASZ4=@vger.kernel.org X-Gm-Message-State: AOJu0YzmHvYi3tR1++7hjfI8zu1YYT4ZEe9JS9umPyYX2RtwqcMpEoXn lRBKnOL9kLojaxrm+tqbD8f9n1bYwXNpVr76cmUwK+YlVCB6UL950U1VaVue0N4zkMM= X-Gm-Gg: ATEYQzxXJR57c+iN+SIWudvpo2iuN08/RdANJAjIA3Pa0FEyc+t5OTuDVEHOuLyE0mZ XKHDhWYm/UIYsjuAFJ2CS9IMsQAcDTXGRVk4TRQoeYbEFuZ3uheRGyTK+ctr9EAq7Ymfu2Cxfua peUgUKti+/rqOiBqvoc7+s/GfplriFNu4q62j39z6QeDiAjs2P0V1JmL6sfKWMlSGWrEj2QLIDh OeunYerbJyCbToBncDcicXV2LzuDgK7I1lDdYhhWQDYyHhTMPsz8vnBJ5XG7v5+LCvT5M3n+lXx 5poLS7oiv5j3JwWV5YZe24XKU8NbGIEDnvtv8tvqixnTy42typhiPoQy+/i+CeO2q/4yc1D/8VU cJKa+lSCrg5K/1aY1oMDdqOc3RKqtdo/516EteRmIL7jenbPNAFzhJ1dNnU399IGC2CI6iXv4N/ cg/gTwbJd8dqDbatRy7YQANFc6HpS4ajzZuEblSsXIJPDCmA== X-Received: by 2002:a17:907:c30e:b0:b84:40d3:43e7 with SMTP id a640c23a62f3a-b982f0accdemr466405266b.6.1774117661044; Sat, 21 Mar 2026 11:27:41 -0700 (PDT) Received: from localhost.localdomain ([2a00:f41:18ce:4346:2c4b:1eff:fec9:fe24]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b983388070csm285097866b.60.2026.03.21.11.27.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2026 11:27:40 -0700 (PDT) From: "Jose A. Perez de Azpillaga" To: linux-staging@lists.linux.dev Cc: Luka Gejak , Greg Kroah-Hartman , Michael Straube , Hans de Goede , Khushal Chitturi , Dan Carpenter , Vivek BalachandharTN , Minu Jin , Artur Stupa , Zhuoheng Li , Nino Zhang , linux-kernel@vger.kernel.org Subject: [PATCH v4 1/2] staging: rtl8723bs: remove dead REJOIN code Date: Sat, 21 Mar 2026 19:26:59 +0100 Message-ID: <20260321182713.665872-2-azpijr@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321182713.665872-1-azpijr@gmail.com> References: <20260321182713.665872-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 REJOIN macro is not defined anywhere in the kernel tree. Remove this dead code to simplify the function. Signed-off-by: Jose A. Perez de Azpillaga Reviewed-by: Luka Gejak Reviewed-by: Dan Carpenter --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 28 ++--------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rt= l8723bs/core/rtw_mlme.c index 2adc98c955fd..4bf6d1865391 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -1153,10 +1153,8 @@ void rtw_reset_securitypriv(struct adapter *adapter) /* if join_res > 0, for (fw_state =3D=3DWIFI_ADHOC_STATE), we only check i= f "ptarget_wlan" exist. */ /* if join_res > 0, update "cur_network->network" from "pnetwork->network"= if (ptarget_wlan !=3D NULL). */ /* */ -/* define REJOIN */ void rtw_joinbss_event_prehandle(struct adapter *adapter, u8 *pbuf) { - static u8 __maybe_unused retry; struct sta_info *ptarget_sta =3D NULL, *pcur_sta =3D NULL; struct sta_priv *pstapriv =3D &adapter->stapriv; struct mlme_priv *pmlmepriv =3D &adapter->mlmepriv; @@ -1178,7 +1176,6 @@ void rtw_joinbss_event_prehandle(struct adapter *adap= ter, u8 *pbuf) =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)) { @@ -1250,29 +1247,8 @@ void rtw_joinbss_event_prehandle(struct adapter *ada= pter, u8 *pbuf) _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); =20 } else {/* if join_res < 0 (join fails), then try again */ - - #ifdef REJOIN - res =3D _FAIL; - if (retry < 2) - res =3D rtw_select_and_join_from_scanned_queue(pmlmepriv); - - if (res =3D=3D _SUCCESS) { - /* 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 */ - _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); - rtw_indicate_connect(adapter); - } else { - #endif - - _set_timer(&pmlmepriv->assoc_timer, 1); - _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); - - #ifdef REJOIN - retry =3D 0; - } - #endif + _set_timer(&pmlmepriv->assoc_timer, 1); + _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING); } =20 ignore_joinbss_callback: --=20 2.53.0 From nobody Sat Apr 4 00:05:57 2026 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (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 63CCC314D06 for ; Sat, 21 Mar 2026 18:27:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774117670; cv=none; b=aMO1B60x4B/jle3V73SDwc2n71sHT+MiG6TtVwnb8NtGMFO9Yc2C0LcHhu9N/aK9rbp1zk8bh6lBJYocu5eXsnhnzEaL48xH9LXHJI+bMZG7Mdx032UL2AW5IyYW6/G5E8+ttfqwbYsO41CV7TvF/jkI5QQwJeWFq6NtbvD0GVk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774117670; c=relaxed/simple; bh=id7YsOTuFdiwiTRw1W5tb/uCdcTWObJ04hrMsDLVGvQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ttqV0Z9Yf2g71WDaBJFp0KhspVsJ0bPolM4GQEs0I8NPrZtn2VUVZz/yEELfngZyN3cZflYHO9fqEXWuL7qYmc3JriByFUDVsCA/lxIS1ZzP5hWxMXjnCV8X8lTTVFLJcZAeBLCeN8KqpMcrJNL7bdSbhBJMJMGpjF5502QVyW0= 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=QaXlJrj8; arc=none smtp.client-ip=209.85.218.42 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="QaXlJrj8" Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-b97a9f4b4dcso191726666b.3 for ; Sat, 21 Mar 2026 11:27:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774117667; x=1774722467; 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=sJi10ByW6U3y4Tl0xc6sEw2Ayb0yHzPnojIX0CO83Rk=; b=QaXlJrj8ekRVtYlJflTENb4kUFoIXPeyYa4qUnNN9Zc4Jp9isRLDTB9e90+sRwTxPz Y2LgEmXzrDqYi0UP237hQAwwqOd6RTIFof1EtA02M2ZCWwoE8OuVb8GWJ2LQKkstqyFN /5bKqGKZsxzrle42XGWsJPQjB0NibhbVwu8KI9vv9ZR6Tg/YkqtyeU2N9x0nWiqMxy6Q fx/i8UBZPMNrlFTnS/Z3dowaLzWkRCzO/g8a5WYejWwCYDESClQKVlJL5Ja3Gpzs5Vve AAiiFZ4MeR3QPf9dyus8lXwRSaFsMQjgReXErHUZIXBBh6QBOUoicLFVfpSpsOt4IzrL Yelw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774117667; x=1774722467; 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=sJi10ByW6U3y4Tl0xc6sEw2Ayb0yHzPnojIX0CO83Rk=; b=nxI9AwKcLpVAgXjDbODtlN2IMQSlKpNxmDP8LvLAXmyZUpKlExrsqYZkOG/sSOUihk xi6+yOh8XzAt+3jZg0bMrvSrLuT7Az3P4sMdyc8I2VGMmIowKRd7qVlWAK66qwjrHSr6 BJ8YrKywhQZLUMIbPgnJLtcVyVvCsD7boEd4Pj3v32tp4dTNBy8o2x7+PmAA/VVuU9TE WXive/5yFol13WJQDeSvJEOQC7HYpA+k9LxzDa2C/w87TPH5oaAAoIdjPSMM+E49TvEL j1E8X1qaoF0a8nGCQhhWk46TmbCosGx6OAaWEzef3qWxnpVhfgPKaVMxFSFBVi+lvcME x/XA== X-Forwarded-Encrypted: i=1; AJvYcCXKw6FoKAjBTCNWdEiHZ5Wj8N0yveLlfH1Wky+NvHkUFgDPV+ZQmrkSAdMlZoAfJ0tiTXXpHeY12k+ojEs=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/BkfWKVTPr1CAhlMNuIvla39SpAyRvue4Qx4QoShkkuXRruVZ Z/yQjLILm7zI9Y+rB3laXA6CNEIBE4Xh0jqITrcT3RM+0W6YZWemfnAnbAskauMyDAQ= X-Gm-Gg: ATEYQzzWt8WizXErSGrYoevPGL4NoNtGEaPkDxXp4/sLJsPzBaNRnx5oWfGVesifqoA scyYe3CyfIJdrkFKjgjAhc3hLXh+1sV4RN68d1lyfjMCZYmCcJOsbavA4Dwi6PYzVmAkZIeiVEK 3yro/qxBwY8bll0K/QPRZFg14acZEik0LEuP/Tm5DLC2u+BRqDGM9IxEh/VkNhF2FRZR9mUT1zc QP1JMoEmOtk8mT+s75XdwVgrC5zzkZ+VSivq8p8RRiSDh15uTM9AO1qcZWAcHaBCyFwfZ1k03gJ OUrO9OBHpvHH0OIPuTzBy4PqVucm6/j7ZPqjdvrmeDO98Ca1Qx8LIdYY0k7Iblu8jey6R+Gl52b E76ektEDekQ70Yt7utlEr+Y9Bw8rjmD22X8vX/JUnvmlqUr6aKC6YVbt5IYayWIyLEtBmOsY3+j BqPgOxhhO8fOZ6+tcFZaUbnsJ069FtIkbkvCzsTq513OiIR0mgWlhuXlza X-Received: by 2002:a17:907:1c9e:b0:b98:4c5f:6603 with SMTP id a640c23a62f3a-b984c606967mr162694366b.18.1774117666328; Sat, 21 Mar 2026 11:27:46 -0700 (PDT) Received: from localhost.localdomain ([2a00:f41:18ce:4346:2c4b:1eff:fec9:fe24]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b983388070csm285097866b.60.2026.03.21.11.27.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2026 11:27:45 -0700 (PDT) From: "Jose A. Perez de Azpillaga" To: linux-staging@lists.linux.dev Cc: Luka Gejak , Greg Kroah-Hartman , Michael Straube , Hans de Goede , Khushal Chitturi , Dan Carpenter , Vivek BalachandharTN , Ethan Tidmore , Minu Jin , Artur Stupa , Zhuoheng Li , Nino Zhang , linux-kernel@vger.kernel.org Subject: [PATCH v4 2/2] staging: rtl8723bs: refactor rtw_joinbss_event_prehandle to reduce indentation Date: Sat, 21 Mar 2026 19:27:00 +0100 Message-ID: <20260321182713.665872-3-azpijr@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260321182713.665872-1-azpijr@gmail.com> References: <20260321182713.665872-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 Reviewed-by: Luka Gejak Reviewed-by: Dan Carpenter --- drivers/staging/rtl8723bs/core/rtw_mlme.c | 135 +++++++++++----------- 1 file changed, 70 insertions(+), 65 deletions(-) diff --git a/drivers/staging/rtl8723bs/core/rtw_mlme.c b/drivers/staging/rt= l8723bs/core/rtw_mlme.c index 4bf6d1865391..e2dff9514b8e 100644 --- a/drivers/staging/rtl8723bs/core/rtw_mlme.c +++ b/drivers/staging/rtl8723bs/core/rtw_mlme.c @@ -1174,86 +1174,91 @@ 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; + } =20 - /* s4. indicate connect */ + 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; + + 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); } =20 void rtw_joinbss_event_callback(struct adapter *adapter, u8 *pbuf) --=20 2.53.0