Bug 2501974

Summary: [regression] rtw89_8852be: RX frames counted but not delivered to the stack — silent multi-minute stalls; reverting bda294ed0ed0 fixes it
Product: [Fedora] Fedora Reporter: armin
Component: kernelAssignee: Justin M. Forbes <jforbes>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 44CC: acaringi, adscvr, airlied, hans, hpa, jforbes, kernel-maint, linville, masami256, mchehab, nickolasjcarr, ptalbert, steved, suraj.ghimire7
Target Milestone: ---Keywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-7.1.4-200.fc44 kernel-7.1.4-100.fc43 Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-07-20 00:54:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description armin 2026-07-17 22:35:25 UTC
Description of problem:
Since kernel 7.1.x my WiFi (Realtek RTL8852BE, rtw89_8852be) stalls silently every
few minutes. The radio link stays completely healthy throughout -- received frames are counted by mac80211 but never delivered to the network stack.

During a stall:
  - the interface stays associated, signal unchanged (~-62 dBm)
  - "tx failed" and "tx retries" stay at 0: the AP ACKs every frame we send
  - "beacon loss" stays at 0
  - the station's "rx packets" counter keeps increasing (~23 frames/s)
  - but almost nothing reaches the IP stack -- no ping, no traffic at all
  - the kernel logs NOTHING: no deauth, no disassoc, no firmware error
  - after 1-7 minutes it recovers on its own, WITHOUT re-association, and the
    entire backlog is delivered in a single burst

Quantified over one 54-second stall, comparing the mac80211 station counter
against the napi_gro_receive tracepoint:

  frames received and counted from the AP : ~1230
  frames delivered to the network stack   :  ~211
  frames withheld                         : ~1000
  delivered in one interval on recovery   : +5070

Everything that DOES get through during the stall is broadcast/multicast only:
ARP (0x0806), AVM vendor protocols (0x8912, 0x88e1), IPv6 multicast (0x86dd) --
exactly the traffic that bypasses Block-Ack reordering.

SUSPECTED COMMIT:
  bda294ed0ed0 ("wifi: rtw89: Drop malformed AMPDU frames with abnormal PN")

Reverting this commit on top of v7.1 appears to fix the problem: the stalls are
gone. The mechanism fits every observation -- dropping a frame inside an A-MPDU
leaves a hole in the sequence numbers, the RX reorder buffer waits for something
that never arrives, everything behind it piles up, and it is only flushed when a
timeout eventually fires.

Version-Release number of selected component:
  Bad:      kernel-7.1.3-200.fc44.x86_64, and v7.1 vanilla (self-built)
  Good:     kernel-7.0.14-201.fc44.x86_64
  Fixed by: v7.1 with bda294ed0ed0 reverted

Note: "git log v7.1..v7.1.3 -- net/mac80211/ drivers/net/wireless/realtek/rtw89/"
is EMPTY, so the regression entered with the v7.1 merge window, not via a stable
patch.

Hardware:
  04:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8852BE
          PCIe 802.11ax Wireless Network Controller [10ec:b852]
  Driver:   rtw89_8852be (chip info CID: 0, CV: 1, AID: 0, ACV: 1, RFE: 1)
  Firmware: 0.29.29.18 (9e3d777f)
  AP:       FRITZ!Box 4040, 5 GHz, channel 36 (5180 MHz), VHT80, non-DFS

How reproducible:
Every few minutes under normal use. Never on 7.0.14, tested over several full
working days. Confirmed A/B/A. I could NOT find a way to trigger it on demand -- tearing down the RX Block-Ack sessions via mac80211 debugfs looked promising at first but produced no stall in 10 controlled attempts. Because of that I could not bisect;
the suspect was found by reading the v7.0..v7.1 commits touching the RX/AMPDU path
and doing a targeted revert test.

Actual results (monitoring script, 5 s interval; counters from "iw station dump",
router = ping to the AP):

  15:59:30 sig=-63 txp=70540 txr=0 txf=0 rxp=266600 bl=0 router=OK
  15:59:35 sig=-62 txp=70824 txr=0 txf=0 rxp=267564 bl=0 router=FAIL  <- stall
  16:02:00 sig=-63 txp=71396 txr=0 txf=0 rxp=270838 bl=0 router=FAIL
  16:06:42 sig=-61 txp=72752 txr=0 txf=0 rxp=277203 bl=0 router=FAIL
  16:06:48 sig=-64 txp=72864 txr=0 txf=0 rxp=277369 bl=0 router=OK    <- recovers
  16:06:53 sig=-61 txp=74304 txr=0 txf=0 rxp=280463 bl=0 router=OK    <- +3094 burst

Note txf=0 and bl=0 throughout, and rxp climbing steadily during the stall.
dmesg over this entire window contains ZERO wireless-related entries.

Additional info:
- WiFi powersave disabled (NetworkManager wifi.powersave=2, confirmed via iw).
- /etc/modprobe.d/rtw89.conf sets:
    options rtw89_pci disable_clkreq=y disable_aspm_l1=y disable_aspm_l1ss=y
    options rtw89_core disable_ps_mode=y
  All confirmed active via /sys/module/*/parameters/. The stall STILL occurs, so the
  known disable_aspm_l1 workaround does NOT help here.
- Signal is constant across the stall; not a range, interference or DFS issue.
- The Fedora kernel is built without CONFIG_RTW89_DEBUGMSG / CONFIG_RTW89_DEBUGFS,
  so no driver-level trace is available.
- A regression with the same version boundary was reported against the CachyOS
  kernel: https://github.com/CachyOS/linux-cachyos/issues/921
  There, disable_aspm_l1 resolved it; here it does not.


Reproducible: Always

Comment 1 Fedora Update System 2026-07-18 22:04:36 UTC
FEDORA-2026-4affa21ca9 (kernel-7.1.4-200.fc44) has been submitted as an update to Fedora 44.
https://bodhi.fedoraproject.org/updates/FEDORA-2026-4affa21ca9

Comment 2 Fedora Update System 2026-07-18 22:04:38 UTC
FEDORA-2026-66c7770601 (kernel-7.1.4-100.fc43) has been submitted as an update to Fedora 43.
https://bodhi.fedoraproject.org/updates/FEDORA-2026-66c7770601

Comment 3 Fedora Update System 2026-07-19 04:09:06 UTC
FEDORA-2026-4affa21ca9 has been pushed to the Fedora 44 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-4affa21ca9`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-4affa21ca9

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 4 Fedora Update System 2026-07-19 04:40:33 UTC
FEDORA-2026-66c7770601 has been pushed to the Fedora 43 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-66c7770601`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-66c7770601

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 5 Fedora Update System 2026-07-20 00:54:21 UTC
FEDORA-2026-4affa21ca9 (kernel-7.1.4-200.fc44) has been pushed to the Fedora 44 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 6 Fedora Update System 2026-07-20 01:11:25 UTC
FEDORA-2026-66c7770601 (kernel-7.1.4-100.fc43) has been pushed to the Fedora 43 stable repository.
If problem still persists, please make note of it in this bug report.