Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp2516957lqp; Mon, 25 Mar 2024 00:44:02 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVJj183ksFxddCUFgOUG7x4jPYtB43wQlb5vOP0AKj41ar4DEV1XEsymVSyHT4zrmgZwx3lyaUJmtiYnhSOiGviG8ls/kC9ocdvP38tPA== X-Google-Smtp-Source: AGHT+IHUkDJJr6VYcjT2QCCZhfbeNXaxdaPcp2x5liIs4cSfvC1/N7EPUq3GSqlJQwr3t68BCB4y X-Received: by 2002:ae9:e401:0:b0:78a:2d4b:3b06 with SMTP id q1-20020ae9e401000000b0078a2d4b3b06mr6489138qkc.76.1711352641954; Mon, 25 Mar 2024 00:44:01 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711352641; cv=pass; d=google.com; s=arc-20160816; b=GYXF6RZHIhMBdV1C1a0/idq+HcoZunldpBHdNaMJJL/QHBR03voGhlU59RAZu0XXAw dv62uU1t2AT2e4ayiYC1UaVKijS7ufHo7E7sv/jmxpw2yWpvWJtI9Uj+aqWmymUHRD91 PJQr+cviDPSIZ+rsCOVK7TNOXttX3NmqluJ/U7D9BV94WPmSWgyCch6PrnEuUwadP+Fr 3TPiCMY0RMVM5yGwhZUSI3bIEweN2NX+SIhzbE03g6KrMjVtqKLHIYT7q7dTDuMX3Ka2 NcdNp2vuDZMi8GRgkjgxu7PLDUtQ93iAPjhb8LQPJysEBeVvs2bL92ATCmtwy02nDnxZ pyPg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=7dniCra//dP4AkL4pQaxy4AMxaBKwzfhUNggMPF4aK4=; fh=75dLTr36I5W9FBN+Z3weG/mVZD8GM7lGUnkhMFCKvJc=; b=PSxAk3MJkqina6LsfTqxyqz9bXhn9PDBRzFW3YXI2tDqfnmPbzdIMj6L3brNbBNltV rtXT9D4RJt8Kx/oDw5l4D0N5d+qLqcgQPB/6tB5vjrdrxUCJNu4epS5Yx6mwc0MxwYDo J6k9NTzjGokZSqwlTGm+plgcq2MfnjbSYqUkHEfLu4IVQ5jtFzoqecxWpWRGx0oS/jDJ +euyAYDq+JJOCCuEVqZCOXj3NT+iB5SvPKq0hF8rg6leXtHREusiXmnMc4aSVZkc2pYo T/O9hK5DH1N4l+aey0H0sbTSa1KT5j7CeeATUjF49YbuaUUWQxoelVDD3fAgOcetqAOp cQAg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="GICIdG/9"; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115480-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115480-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id j8-20020a05620a000800b00789c76ddda2si4965669qki.548.2024.03.25.00.44.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 00:44:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-115480-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="GICIdG/9"; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-115480-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-115480-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 6793E1C2EC54 for ; Mon, 25 Mar 2024 07:44:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3A5AD206B00; Mon, 25 Mar 2024 02:40:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GICIdG/9" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AAE251DE100; Sun, 24 Mar 2024 22:52:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320731; cv=none; b=o5+0fpcYJnHHzeqgvRyhD9clS2BlCipVvRGW47HwtvXVogy54wt9BvO9S52kFY5LBnWwZDBa4i8q3nGF9kBYG+ovanYOWKfI6qR4KgO7/8lXW5EtSaguUv5m9IKWKTfLOFRGPCXmYNpe6xPJr+SgrwJDt1rLvq7wYs1E7PiDPHg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711320731; c=relaxed/simple; bh=NRY+7Tj0qGy+7ZmIHN94EIlHoI0r19i0s2wSgIv4I9A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MAZEda2xIBpcHc6PZHLrYTf81J0+ZGSVeMnDh1H9SRS/3/fL0NthP/C7RrDgD8k7vWD5MenRdZEvJz1T7DgVylO3H2u32wWxKUTIaERXA7WpTqrrNklywibHtOyVTEFS15BKqs/ffizipVYKL0pSBpklzTQxFFdYK2CsNs8b0J4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GICIdG/9; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7D7A1C43394; Sun, 24 Mar 2024 22:52:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1711320730; bh=NRY+7Tj0qGy+7ZmIHN94EIlHoI0r19i0s2wSgIv4I9A=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GICIdG/99OHfQOHq80nVtF3o3aYUP8D7L9AbE6JooTshVuc2H9EWktQsbBUcgE9HE ySHg+17jN5hRUQO3MERY4eohCNrwPXdepLU/vmFXaT6nRNCMuvfo1D/JZixJGXYby+ wi01flfeg2krXvlq613tTKf6poOVFLiqQ7e9oy/X60QmHeoHIqukHZodKRrAiToAwy Daz72rbkZTzGvjyZsIrA3zwlnmnKEafwZN76Vs4tKoQIGGPkVVL8g6fjKT0AE+M3JS +EyH74W9toVy4BW6zc2igDJGXqBfhVJMkerJoCEW1bgxNHDCh7kMXsbrM98pdAnRrI LK+PZAlW779wA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Peter Chiu , Shayne Chen , Felix Fietkau , Sasha Levin Subject: [PATCH 6.7 293/713] wifi: mt76: mt7996: check txs format before getting skb by pid Date: Sun, 24 Mar 2024 18:40:19 -0400 Message-ID: <20240324224720.1345309-294-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240324224720.1345309-1-sashal@kernel.org> References: <20240324224720.1345309-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Peter Chiu [ Upstream commit 9c9c25f1dcdd98fffda564d2073f26219c84a2c3 ] The PPDU TXS does not include the error bit so it cannot use to report status to mac80211. This patch fixes issue that STA wrongly detects if AP is still alive. Fixes: 2569ea5326e2 ("wifi: mt76: mt7996: enable PPDU-TxS to host") Signed-off-by: Peter Chiu Signed-off-by: Shayne Chen Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin --- .../net/wireless/mediatek/mt76/mt7996/mac.c | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c index fa3001e59a364..cee2ede268a2d 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c @@ -1178,25 +1178,28 @@ mt7996_mac_add_txs_skb(struct mt7996_dev *dev, struct mt76_wcid *wcid, struct ieee80211_tx_info *info; struct sk_buff_head list; struct rate_info rate = {}; - struct sk_buff *skb; + struct sk_buff *skb = NULL; bool cck = false; u32 txrate, txs, mode, stbc; txs = le32_to_cpu(txs_data[0]); mt76_tx_status_lock(mdev, &list); - skb = mt76_tx_status_skb_get(mdev, wcid, pid, &list); - if (skb) { - info = IEEE80211_SKB_CB(skb); - if (!(txs & MT_TXS0_ACK_ERROR_MASK)) - info->flags |= IEEE80211_TX_STAT_ACK; + /* only report MPDU TXS */ + if (le32_get_bits(txs_data[0], MT_TXS0_TXS_FORMAT) == 0) { + skb = mt76_tx_status_skb_get(mdev, wcid, pid, &list); + if (skb) { + info = IEEE80211_SKB_CB(skb); + if (!(txs & MT_TXS0_ACK_ERROR_MASK)) + info->flags |= IEEE80211_TX_STAT_ACK; - info->status.ampdu_len = 1; - info->status.ampdu_ack_len = - !!(info->flags & IEEE80211_TX_STAT_ACK); + info->status.ampdu_len = 1; + info->status.ampdu_ack_len = + !!(info->flags & IEEE80211_TX_STAT_ACK); - info->status.rates[0].idx = -1; + info->status.rates[0].idx = -1; + } } if (mtk_wed_device_active(&dev->mt76.mmio.wed) && wcid->sta) { -- 2.43.0