From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-177.mta1.migadu.com (out-177.mta1.migadu.com [95.215.58.177]) (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 33872275870 for ; Fri, 1 May 2026 15:05:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777647913; cv=none; b=WBijiSTYY6M6a31IovDH8gJF1InkL/0l7RcSRazxk4YAhNPfEbNVWfLl35TxoF3Vjkdm+K8OeGcg+RJwOvBAocmD+1H1Nn1EHzRtO0pYmT3e6xY4039ObaEwSzEPOPstifOHo0ddCUjrcMxU0nndYSKHlnBQEsEfD8vUuun93dg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777647913; c=relaxed/simple; bh=/y/gaHlznUUO1DZKGIHAKNrKkujCtryx6gsz82mEeJo=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=f7a/zz3/4gQ4NAWl9H5S5b1xAURpGhLdlmbfsci1oPEN5vZpSDdB8rKoOwtUZlHfUpLlxwlRYe7NLOv0C/DIH+JU5uqRTYei7oddIE7F/YhQrAaUqzSMt0yiywnAoJSOzjki4FcQ6MkYUt7wQsaOaHvvB/L5kzR64WJvTm4gDVc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=oR+45DUd; arc=none smtp.client-ip=95.215.58.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="oR+45DUd" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1777647900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=QXqyhe6SNX+aC9KuwAMEIvSlU49jdCuAN0y8S3VOMlA=; b=oR+45DUdC6MPNsy498hVXyqCoIuXvI05arsk4DiRdjq36m0Cjq94Fcgb/+qM8x7jWzg/Ac jNdGKo/SWVUsx9+rIJCFChit/A/Yg0izsaj68eikuaFznMDbdZyX5Y4uOBSG23sYeM9wRi DDsjbaAMNqyg4kGqIw7YFL5YzQicRK8= From: luka.gejak@linux.dev To: Ping-Ke Shih , Kalle Valo Cc: Yan-Hsuan Chuang , Brian Norris , Stanislaw Gruszka , linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, Luka Gejak , stable@vger.kernel.org Subject: [PATCH] wifi: rtw88: increase TX report timeout to fix race condition Date: Fri, 1 May 2026 17:04:02 +0200 Message-ID: <20260501150402.227788-1-luka.gejak@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT From: Luka Gejak The driver expects the firmware to report TX status within 500ms. However, a race condition exists when the hardware is under heavy TX load and is simultaneously interrupted by background scans or power-saving state transitions. During these events, the firmware may go off-channel for longer than 500ms, delaying the TX reports. When this happens, the purge timer fires prematurely, dropping the tracking skbs from the queue and spamming the kernel log with: "failed to get tx report from firmware". Dropping these tracking skbs prevents the driver from reporting TX status back to mac80211, which breaks rate control accounting and degrades performance. Increase RTW_TX_PROBE_TIMEOUT to 2500ms. This timeout is large enough to comfortably accommodate the duration of full WiFi background scans and sleep transitions without incorrectly tripping the purge timer, while still eventually catching true firmware lockups. Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver") Cc: stable@vger.kernel.org Tested-by: Luka Gejak Signed-off-by: Luka Gejak --- drivers/net/wireless/realtek/rtw88/tx.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/realtek/rtw88/tx.h b/drivers/net/wireless/realtek/rtw88/tx.h index d34cdeca16f1..95d15e4f5d34 100644 --- a/drivers/net/wireless/realtek/rtw88/tx.h +++ b/drivers/net/wireless/realtek/rtw88/tx.h @@ -7,7 +7,7 @@ #define RTK_TX_MAX_AGG_NUM_MASK 0x1f -#define RTW_TX_PROBE_TIMEOUT msecs_to_jiffies(500) +#define RTW_TX_PROBE_TIMEOUT msecs_to_jiffies(2500) struct rtw_tx_desc { __le32 w0; -- 2.54.0