Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp1868049rwd; Wed, 17 May 2023 02:29:07 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5vcI3CIUcJoDZ85d7MpUc3al7/Unk/QF5UPME95xJgIMtA2tBJX9HyMohFDCUXMeWtxjZX X-Received: by 2002:a05:6a20:394d:b0:104:8824:74eb with SMTP id r13-20020a056a20394d00b00104882474ebmr22178794pzg.51.1684315747011; Wed, 17 May 2023 02:29:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684315746; cv=none; d=google.com; s=arc-20160816; b=an99OGwpP7LGyOV9Iu2TG/j+hJwRf+N2Eke2M9VZjJXlnnuMBIUxxFgIThritbOG/x raBvEQbNJ7ijwfk1DeL6m4x8r6bWfY2jOdHFg+gZHKQvTaUITe2VabH1mMqTZhktcruy hLgkYfgj6ghkjOEX+4MGWgjtmHY8JUzGAIXZwgheLVeH4l2no0G9m6dm9sZNfk6cFUMz mLF43aFxnVyDi15Ykr0/moU+hSpgaNqzz79BcmI2LTl7AhbRr9JFV+xE3Kak2C8L+Rw+ /0TidQ7S2zbQ8kGcP7X3I5tG78qUvCpVKExES5Mdt5oKKHz0VjCiM+tMZBlz7QAvDMvt vA+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from :dkim-signature; bh=SOxNF8DkABpSug1TUOX7PPorK4LtqbS61IkWbqEbNGA=; b=Txw/VbAwgCbM/Jvw2XDAv6uDPZJ3CjoWtTUSDVgvR8Ecc80I9RTHGr18vEONfmXz95 asqaJRRhwRaYxd8JKdbF5/Ug/y2o5++AFFlP4pNKDqHN2fr/IY4wsJRlGodLbIexiSIv tohESqnhS39Tfv5Otok5yzYMUg3MWEDPqQe48cUlDSviLL4Xr5vueBrJwKJ6H6PeblME F54TRndUArJKwhCQD+hAEpTWoeTqVWcFiRxJJkHDMQY9eRh6uHUfUGavnlhyci7PfSZm TUV4FhAH/VnkNM2bTgiBmwad4ykQ/bdI0f4cmrWQB+vj+xy83hHjEGIJl4s8SbbA3A6s N+xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=q4dkIRpe; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v184-20020a6389c1000000b00520a074168csi19983837pgd.454.2023.05.17.02.28.54; Wed, 17 May 2023 02:29: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=@mediatek.com header.s=dk header.b=q4dkIRpe; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229796AbjEQJTV (ORCPT + 62 others); Wed, 17 May 2023 05:19:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59586 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229489AbjEQJTU (ORCPT ); Wed, 17 May 2023 05:19:20 -0400 Received: from mailgw02.mediatek.com (unknown [210.61.82.184]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4FD25F9; Wed, 17 May 2023 02:19:18 -0700 (PDT) X-UUID: e350ca0cf49311edb20a276fd37b9834-20230517 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Type:MIME-Version:Message-ID:Date:Subject:CC:To:From; bh=SOxNF8DkABpSug1TUOX7PPorK4LtqbS61IkWbqEbNGA=; b=q4dkIRpemZZUYoDRvqCebdvMyyNm5LHdGlbx3GqnCT68zbdX9oskgHYXpFg86Yw9ecPrkT65LcqiE37bX2p0vTlGZEGNN5eoROXrSFReVa1ap5vka/GdjH75G+5pzXKSZJ7+xiJIKxKiP7tnRKGUEyv0gQGyAAqUfLcuEF872qU=; X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.25,REQID:4f404e75-da90-4e0e-93c5-2a2418a8fe01,IP:0,U RL:0,TC:0,Content:-25,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTIO N:release,TS:-25 X-CID-META: VersionHash:d5b0ae3,CLOUDID:38b5753b-de1e-4348-bc35-c96f92f1dcbb,B ulkID:nil,BulkQuantity:0,Recheck:0,SF:102,TC:nil,Content:0,EDM:-3,IP:nil,U RL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-UUID: e350ca0cf49311edb20a276fd37b9834-20230517 Received: from mtkmbs13n2.mediatek.inc [(172.21.101.108)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1614515218; Wed, 17 May 2023 17:19:12 +0800 Received: from mtkmbs13n2.mediatek.inc (172.21.101.194) by mtkmbs11n1.mediatek.inc (172.21.101.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Wed, 17 May 2023 17:19:11 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkmbs13n2.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Wed, 17 May 2023 17:19:11 +0800 From: Deren Wu To: Felix Fietkau , Lorenzo Bianconi CC: Sean Wang , Soul Huang , Ming Yen Hsieh , Leon Yen , Eric-SY Chang , KM Lin , Robin Chiu , CH Yeh , Posh Sun , Stella Chang , Quan Zhou , Ryder Lee , Shayne Chen , linux-wireless , linux-mediatek , Deren Wu , Subject: [PATCH v2] wifi: mt76: mt7921: fix skb leak by txs missing in AMSDU Date: Wed, 17 May 2023 17:18:24 +0800 Message-ID: <3c9926f5492523e0128bbc4897815d75b83e324a.1684312995.git.deren.wu@mediatek.com> X-Mailer: git-send-email 2.18.0 MIME-Version: 1.0 Content-Type: text/plain X-MTK: N X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,URIBL_BLOCKED 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 txs may be dropped if the frame is aggregated in AMSDU. When the problem shows up, some SKBs would be hold in driver to cause network stopped temporarily. Even if the problem can be recovered by txs timeout handling, mt7921 still need to disable txs in AMSDU to avoid this issue. Cc: stable@vger.kernel.org Fixes: 163f4d22c118 ("mt76: mt7921: add MAC support") Reviewed-by: Shayne Chen Signed-off-by: Deren Wu --- v2: * update operation for booleans, not bitfields (suggested by Simon Horman) * rectify fixes tag for downstream backport --- drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c index ee0fbfcd07d6..a548b8debf5f 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c +++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c @@ -495,6 +495,7 @@ void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi, BSS_CHANGED_BEACON_ENABLED)); bool inband_disc = !!(changed & (BSS_CHANGED_UNSOL_BCAST_PROBE_RESP | BSS_CHANGED_FILS_DISCOVERY)); + bool amsdu_en = wcid->amsdu; if (vif) { struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv; @@ -554,12 +555,14 @@ void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi, txwi[4] = 0; val = FIELD_PREP(MT_TXD5_PID, pid); - if (pid >= MT_PACKET_ID_FIRST) + if (pid >= MT_PACKET_ID_FIRST) { val |= MT_TXD5_TX_STATUS_HOST; + amsdu_en = amsdu_en && !is_mt7921(dev); + } txwi[5] = cpu_to_le32(val); txwi[6] = 0; - txwi[7] = wcid->amsdu ? cpu_to_le32(MT_TXD7_HW_AMSDU) : 0; + txwi[7] = amsdu_en ? cpu_to_le32(MT_TXD7_HW_AMSDU) : 0; if (is_8023) mt76_connac2_mac_write_txwi_8023(txwi, skb, wcid); -- 2.18.0