From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy2-f6.google.com (mail-dy2-f6.google.com [74.125.229.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C417527B340 for ; Fri, 9 Oct 2026 01:50:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.229.6 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791510627; cv=none; b=Al1cbBMjVjlg9F9vWLILDEo+OkRi9t0Vsub80caQZAsH0u/RTPxUbl92aD4FJFyAsZaQlFzAvtf/A4k63qcGF4p6Ha2r9hOCNf6FArkmgqh9p2Yb/EGe1i9BpWdoEWNrVT4wINYyDzrufkHDA05tgycyC8xmlf2rj0KcIsS2YOo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791510627; c=relaxed/simple; bh=s/mLc2JYZ08lN5x24bMO+b1/EM92HqyIhdkyHZszL9o=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=qj1bnkfieP42Q+DmBHCXz3NFoQXWofk4rYxuJlbCiQUg1ZKxRduPtCM61f1UzSLjUk8g1pmHPUtQlao0nLJsvbra4C94yzVWTJUCvz3We8HhhIY/86aeGKCHST9hYoOoOTEida3rI4+Qc4G2A8iHBYJretCSaCJuRz3myIaumyE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HRoAsuoD; arc=none smtp.client-ip=74.125.229.6 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HRoAsuoD" Received: by mail-dy2-f6.google.com with SMTP id 5a478bee46e88-33e48934fa8so2265517eec.0 for ; Thu, 08 Oct 2026 18:50:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1791510625; x=1792115425; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=WhHTyXZW81QBiMLsBQIivjraSKuuYTMoCEnOnmIA0xY=; b=HRoAsuoDIH1uAorXcBeVa2O+PFRZVohxp5hCw8J6DNUp6pRtj50aUTm2qtkvnMymkY gO/qYGDtdIcKvdKQ9sZoYU7hKlmDHmdLJYs9xD5uakN7NxQ+LmBxSLhEsqmz4r12ADSN 9OeCDz4zo5XwTDRu0fW4FEPiXe2XTwWPG7DtUVthNPSI5/fP3xdkAK0GJVMbjeaDjjCI d8hPLGeRjfgt7RPLb1ZzzHBDoxHpHRuHlVIq1NgWV7T2B5Nxqi4Tbg3I8WMQ08g/uYet varP65/ATwRvbPRFYWX3gKWMv74+UM5Lh0R/xbCAgKTpNQ5GMwruXoqfvAJ+VHRPlSbZ MjMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791510625; x=1792115425; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=WhHTyXZW81QBiMLsBQIivjraSKuuYTMoCEnOnmIA0xY=; b=dFjqeiT+ktc11+bU1hnzMXzh74K8Do8Esc2ezkx0wmQ5yhhWbE7mVGuhVeKbHJW/yZ UJeWMg+YHeK0NfUTQ3P4ZfRg7W+H+Cg9gt4kn04b4QsoN/1qVD2I2bjGKuibpSAvFNUZ QOn95tE80MjDJGceiyioeu8pHYDz0yeQXS+YlW2NjDtBMP6MiAr0ChIwr9+fug3eD7iR 6T++UrbGlIHgnwRnYsRtAmf80om+5Bxcla84CGWTnhhu9Cw1xkeQB7hGHMiTQDoM21PW XSmDfvjWq0Kmrz2oq8Dei+/GSPb7HhVwGbG9bcAtox7ZZGOXbhzLbczDUZrDLkopM5o/ QNQA== X-Forwarded-Encrypted: i=1; AKwUvBwtQYH6wN6OOUqCTFuVkx+oEcvtySPTWD0n1XASfebe6rJ0s0wXfszyJaxOdvs8bkBd8Ptt8gd9YnMI7LI=@vger.kernel.org X-Gm-Message-State: AFuF++lAG9eLK/xBDmS3Xk8DF1M+C4cdHPMAOE8EsqeaX7YIprkxQZZq YjdZpUBZLlU9NmpQ96mF6eGinGpqiAPaNYRWw24GKdbxCKa3Zx0pAo05SA1zjehP X-Gm-Gg: AYBFou3UuUI+lLMrVZdFiVMOzbstQQlIhr5y0u+/XYZaThSRyyKJ/Z4LEjQ+2XEmQIc NLW3ZWAPWy5ZPA1lahKBGUsdb3VjR90Ab/2eCBD2WAfpOoTFsf6n5oT3/eeVbQ0Rwb9ZQLI1fCy cArc5xAEucrVYnsmOUNvu+z+yKJ6Bai6fLHk3A9CGsIwp67XtTkNoo36TMIX5PMCAeHIiQTBdXi bU4K+ee3eqeYB7CSKCuhKYUW9nI42XQ+Ac+dL9E2aoc5P7lH5xV1CVMVtxhfQ0MFzdkebDOPIZJ xX3eBcjfPeOzuaXResXPPo8d0K0XfmiYuP9Ll4YI0hWtzbKhDOflOea/fQTF+HDuuaAwZbTNM8+ ONU5z3LmIFjOFsbJ4crrhtzvpnXE2TC5CrbEgVxh28jOQOPkWxT3jwl0s09VyfxmFFeN5U+bwo5 Q023NEUmsKhOeUNKssx4lkE4q1U+UJpwd4I1JvxBuOA4foD+SpAsbdtjjqUb4jfu8LhVf7QaqKW XI9NSqnGr9JeunnsTSjwT9V3tNWo5B517reOQ== X-Received: by 2002:a05:701b:4212:20b0:168:e942:4e62 with SMTP id a92af1059eb24-16a61789c56mr512934c88.40.1791510624763; Thu, 08 Oct 2026 18:50:24 -0700 (PDT) Received: from localhost.localdomain ([98.148.34.5]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-16996eac537sm1903698c88.1.2026.10.08.18.50.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Oct 2026 18:50:24 -0700 (PDT) From: Hungyu Lin To: pkshih@realtek.com Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, phhuang@realtek.com, luka.gejak@linux.dev, rtl8821cerfe2@gmail.com, johannes.berg@intel.com, u.kleine-koenig@baylibre.com Subject: [PATCH] wifi: rtw88: sdio: copy RX status after updating the frequency Date: Fri, 9 Oct 2026 01:49:41 +0000 Message-ID: <20261009014941.29137-1-dennylin0707@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit rtw_sdio_rx_skb() copies rx_status to the skb before calling rtw_update_rx_freq_for_invalid(). If the frequency is corrected, the skb still carries the old value when it is passed to mac80211. Move the copy after the frequency update, as the PCI and USB RX paths already do. Fixes: 53ed4b25a79a ("wifi: rtw88: 8822c: Parse channel from IE to correct invalid hardware reports") Signed-off-by: Hungyu Lin --- Built the rtw88 directory on arm64 with GCC 13.3.0 and W=1, with RTW88_8723BS, RTW88_SDIO, RTW88_PCI and RTW88_USB enabled. A userspace test of the old and new receive function, with helper calls stubbed, confirmed that the corrected frequency reaches skb->cb. No hardware testing. drivers/net/wireless/realtek/rtw88/sdio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c index dc2fd0f8f9ff..7c22f0ba5329 100644 --- a/drivers/net/wireless/realtek/rtw88/sdio.c +++ b/drivers/net/wireless/realtek/rtw88/sdio.c @@ -1332,8 +1332,6 @@ static void rtw_sdio_rx_skb(struct rtw_dev *rtwdev, struct sk_buff *skb, u32 pkt_offset, struct rtw_rx_pkt_stat *pkt_stat, struct ieee80211_rx_status *rx_status) { - *IEEE80211_SKB_RXCB(skb) = *rx_status; - if (pkt_stat->is_c2h) { skb_put(skb, pkt_stat->pkt_len + pkt_offset); rtw_fw_c2h_cmd_rx_irqsafe(rtwdev, pkt_offset, skb); @@ -1346,6 +1344,7 @@ static void rtw_sdio_rx_skb(struct rtw_dev *rtwdev, struct sk_buff *skb, rtw_update_rx_freq_for_invalid(rtwdev, skb, rx_status, pkt_stat); rtw_rx_stats(rtwdev, pkt_stat->vif, skb); + *IEEE80211_SKB_RXCB(skb) = *rx_status; ieee80211_rx_irqsafe(rtwdev->hw, skb); } base-commit: 83de3a16c7b37064a59305040ba9b0f93b832794 -- 2.43.0