Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp1636905rwr; Wed, 26 Apr 2023 19:13:06 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4Kww/6su0KdKsMIznNCDHKjoKBtwPW5F824g/6YSlzxrmV1CrE8rhfd6yJjSjhxPlIsBKn X-Received: by 2002:a05:6a00:1a52:b0:63d:2648:f93e with SMTP id h18-20020a056a001a5200b0063d2648f93emr97350pfv.20.1682561586077; Wed, 26 Apr 2023 19:13:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682561586; cv=none; d=google.com; s=arc-20160816; b=JJaWcDv8e6Nm3Q+/Jei/iLExnhTLAEvrwxQpSgvHfHdZ8lqzBRuLEmONcQjbv8+JaA QAm3OfxOteJwYnosS/g3RwOewwRh4yReFSAsh2eU/KRfU8pFIFrcbjVLX+pS6c5Jlbk5 /xFpcWBsxf6ftT88JkiUc3vuVdMgd0GV7IMvUL25fO+seS2/wlc99aYLLGrhyTYhr15q OXPMua/K1nUPaYyreG+huar0OLb7OJSmb2wqXCXloTa2kU7IHDvIojHVN6UdPdX5ZpQf q1mIEI46Dydcgy4QhmZZPwoTL6pZZd+itinez7TGyuhxlPMQPMqkv4Yfp48Mhd2qTe7O LQEQ== 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=8anvPxD8XmwYs/lU3l44S7Jx4BpVN/L/yRKmtDO3HDQ=; b=ja558FskKodWPIegPchMAYHnBoUShN6qENAEDfjq7sodljlBPL8atpjbLrh4oZi/D7 NznA/KxT3wyI/NOIfTcN3ggW5Co/xvK6vuIg3NZ+lntpFp1zmftQfWrLdloiuc2I9zKN qp9WLM4L+SqbW4bGzgfnVAqV1X/9nDl/+ba1ZQmffKM9dC8fpBfF8qphkD49U1dlJoht VZHW1AyVjz6ZbH2o3A5ym5T97gDfiWwQ0DmijYL05qT7WEEO3a8OwvsiLhS+tsebDKA8 EqvtIxvsuD3ldlHus9CHjQLqPWjgiwWDy7+xDTGhfRu+JrIlc84cWxN3IvApvaqIgfEa /vUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@163.com header.s=s110527 header.b=XTNVCwqs; 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 f62-20020a625141000000b0063b5e220eedsi4441075pfb.213.2023.04.26.19.12.55; Wed, 26 Apr 2023 19:13:06 -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=XTNVCwqs; 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 S242740AbjD0CGR (ORCPT + 63 others); Wed, 26 Apr 2023 22:06:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54202 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229605AbjD0CGQ (ORCPT ); Wed, 26 Apr 2023 22:06:16 -0400 Received: from m12.mail.163.com (m12.mail.163.com [220.181.12.196]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 06534359E; Wed, 26 Apr 2023 19:06:13 -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=8anvP xD8XmwYs/lU3l44S7Jx4BpVN/L/yRKmtDO3HDQ=; b=XTNVCwqs6XL5Lj84+31bC DVrzCAkDGi6I+n6azGA1E/HpVPBjZF+vIcDe9igzKF1XCa7/dCDvBCWgR7UtCIW9 hLwZCA+yqyJSCisxCVyDx04bs7mpFrGzrI0wiu47PRCla+rOFoqBXhuG4dArmNRF b9abalyEVCXiP8MOO4+fwk= Received: from localhost.localdomain (unknown [116.128.244.169]) by zwqz-smtp-mta-g1-1 (Coremail) with SMTP id _____wBnOwFi2ElkFJLoAA--.8925S2; Thu, 27 Apr 2023 10:05:23 +0800 (CST) From: Yun Lu To: Jes.Sorensen@gmail.com 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] wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value Date: Thu, 27 Apr 2023 10:05:12 +0800 Message-Id: <20230427020512.1221062-1-luyun_611@163.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID: _____wBnOwFi2ElkFJLoAA--.8925S2 X-Coremail-Antispam: 1Uf129KBjvJXoWxAryDAw4UAFW5ZF43urykZrb_yoW5Gryxpr WDCa4FyF1UJw1kW3y8Xa17CF1rX3WSqrs3uFyfJ34Svrs5X34S9F1F9F98AF4kurWkJFWa qrWFyrsrGrn8W37anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jjQ6LUUUUU= X-Originating-IP: [116.128.244.169] X-CM-SenderInfo: pox130jbwriqqrwthudrp/1tbi6wRezlXl4lutdgAAst 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_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 writen, and use it the next time the register need to be modified. Signed-off-by: Yun Lu --- 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.27.0 No virus found Checked by Hillstone Network AntiVirus