Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp9615032rwr; Thu, 11 May 2023 18:32:10 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4MLA/yv1YL29hDQPIW6Gv8A7RjM5PzUpuecmXyiD/JkazvTkshWXaKD5tMdEZkz+Gyy13h X-Received: by 2002:a05:6a21:78a0:b0:100:5082:611d with SMTP id bf32-20020a056a2178a000b001005082611dmr21827605pzc.32.1683855129836; Thu, 11 May 2023 18:32:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683855129; cv=none; d=google.com; s=arc-20160816; b=Ts8Lumg+WccMD4iCZgX5EK5LYlcTsnchtU2eEXXH4eI9qzKSUSsLPn5ZLIkhOgUcNg B5g6FpCVUOx7M0VLJwo+yOS8+gqgHQ0poB+F4rlEIlMlxChfE6uEt/yMkegAvZdqkjgZ lIBTCzI5otIIAe5Msa88ACTStydrkyFn7JwwJAXO/XKwo4fqH7nr/iLxY1YiL/vSdUJJ Sj73D6/lHQ7uyJ0hk6L3pgcQGUwu+v8+ssanJHAq6gep2447Km0cY+uUNXzYQLL8dWC/ aCqfnxFDzRDIrVF0HXlNVurOrrAt4UzjqFuD0MeWuGk6YryT5Fu+/mWgrKtQziSxkYxk EKZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=V8XvuYhJ5ml6LZvSt04SN4AvdmFKt9PQ9GnG5dzpVVI=; b=Ygakw2LoX8Z7MiDEZ5ou4zLUSFrVwYzblejNj8hvDWOkuMhHEYUVrWCF/3WSdTYykK p7G2BXTXm3eGpgUK06UFgGqllsQDs56toGNgGf91yUe0Gp2PFnqy2cKbY4eDakzNJoO7 D6YLXFZpiocbx0yKzu/sBWTNTcKkrrFuAs3Bl5de7HrshjHyXQx6tmaoAVmgLcLAi7xz k+Ugm8aeionFWwED/SqIaXBAGNn7sboRAOVamCbEWliEpo2vevad/Kfhft3sYrKo8u7d UY3Nr/+CkgYWxFmFv7aunLmEKSlddqeNVk5eBWh+S3a+W3FHPjRulVRNjBcc/kaz8IrZ 3/0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@163.com header.s=s110527 header.b=Xv118CEM; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=163.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v202-20020a6361d3000000b0050bede17e7bsi7896936pgb.347.2023.05.11.18.31.58; Thu, 11 May 2023 18:32:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@163.com header.s=s110527 header.b=Xv118CEM; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=163.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239702AbjELBVe (ORCPT + 62 others); Thu, 11 May 2023 21:21:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35450 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230257AbjELBVc (ORCPT ); Thu, 11 May 2023 21:21:32 -0400 Received: from m12.mail.163.com (m12.mail.163.com [220.181.12.197]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 7932A59F1; Thu, 11 May 2023 18:21:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=V8Xvu YhJ5ml6LZvSt04SN4AvdmFKt9PQ9GnG5dzpVVI=; b=Xv118CEMinxfAy5tKyMnc RlaefxCTLa7vjguIjBYHsuegKUnTAaCRCfjkKdVgW6YPPDqwY+aVJlcK6nzcIyYG JjIhen6RKrsoICTjeDgdqYO3rGX/9rdJkwAAnXej90F7p+ASud1MAZbJkVevXBWd yPUw45r1Ntlzed6yyKxHFg= Received: from localhost.localdomain (unknown [116.128.244.169]) by zwqz-smtp-mta-g2-3 (Coremail) with SMTP id _____wBHR1iBlF1kn+jmBA--.43921S2; Fri, 12 May 2023 09:21:06 +0800 (CST) From: Yun Lu To: Jes.Sorensen@gmail.com, Larry.Finger@lwfinger.net Cc: kvalo@kernel.org, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, linux-wireless@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH v3] wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value Date: Fri, 12 May 2023 09:20:55 +0800 Message-Id: <20230512012055.2990472-1-luyun_611@163.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID: _____wBHR1iBlF1kn+jmBA--.43921S2 X-Coremail-Antispam: 1Uf129KBjvJXoWxAryDKw4kJF4UAw4fGw1UGFg_yoW5Xryrpr WDCa4Fyr1UGr1kWw48Xa17CF1rX3WSqrs3uFyfJ34Svrs5X34S9F1F9F90yF4kurWkJFWa qrZYyrsrG3Z8W37anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07j8eOJUUUUU= X-Originating-IP: [116.128.244.169] X-CM-SenderInfo: pox130jbwriqqrwthudrp/1tbiMgNtzlWB3uAnNwAAso X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Yun Lu When using rtl8192cu with rtl8xxxu driver to connect wifi, there is a probability of failure, which shows "authentication with ... timed out". Through debugging, it was found that the RCR register has been inexplicably modified to an incorrect value, resulting in the nic not being able to receive authenticated frames. To fix this problem, add regrcr in rtl8xxxu_priv struct, and store the RCR value every time the register is written, and use it the next time the register need to be modified. v3: Fix spelling mistake. Signed-off-by: Yun Lu Link: https://lore.kernel.org/all/20230427020512.1221062-1-luyun_611@163.com --- drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 1 + drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h index c8cee4a24755..4088aaa1c618 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h @@ -1518,6 +1518,7 @@ struct rtl8xxxu_priv { u32 rege9c; u32 regeb4; u32 regebc; + u32 regrcr; int next_mbox; int nr_out_eps; diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c index 620a5cc2bfdd..2fe71933ba08 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c @@ -4053,6 +4053,7 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *hw) RCR_ACCEPT_MGMT_FRAME | RCR_HTC_LOC_CTRL | RCR_APPEND_PHYSTAT | RCR_APPEND_ICV | RCR_APPEND_MIC; rtl8xxxu_write32(priv, REG_RCR, val32); + priv->regrcr = val32; if (priv->rtl_chip == RTL8188F) { /* Accept all data frames */ @@ -6273,7 +6274,7 @@ static void rtl8xxxu_configure_filter(struct ieee80211_hw *hw, unsigned int *total_flags, u64 multicast) { struct rtl8xxxu_priv *priv = hw->priv; - u32 rcr = rtl8xxxu_read32(priv, REG_RCR); + u32 rcr = priv->regrcr; dev_dbg(&priv->udev->dev, "%s: changed_flags %08x, total_flags %08x\n", __func__, changed_flags, *total_flags); @@ -6319,6 +6320,7 @@ static void rtl8xxxu_configure_filter(struct ieee80211_hw *hw, */ rtl8xxxu_write32(priv, REG_RCR, rcr); + priv->regrcr = rcr; *total_flags &= (FIF_ALLMULTI | FIF_FCSFAIL | FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL | FIF_OTHER_BSS | FIF_PSPOLL | -- 2.25.1 No virus found Checked by Hillstone Network AntiVirus