I am experiencing periodic WiFi instability on a Realtek RTL8852BE device using the out-of-tree morrownr/rtw89 DKMS driver.
The kernel repeatedly logs:
This occurs every few minutes and sometimes correlates with short SSH freezes / WiFi stalls.
[Fri May 15 12:42:17 2026] rtw89_8852be_git 0000:03:00.0: rtw89_hw_scan_offload failed ret -110
This happens repeatedly every few minutes (not constant interval, but frequent enough to correlate with connectivity issues).
➜ ~ uname -a
Linux corex-home 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64 GNU/Linux
➜ ~ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 26.04 LTS
Release: 26.04
Codename: resolute
➜ ~ lspci -vvnn | grep -A 5 8852
03:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8852BE PCIe 802.11ax Wireless Network Controller [10ec:b852]
Subsystem: Realtek Semiconductor Co., Ltd. RTL8852BE PCIe 802.11ax Wireless Network Controller [10ec:b852]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 60
IOMMU group: 10
--
Kernel driver in use: rtw89_8852be_git
Kernel modules: rtw89_8852be, rtw89_8852be_git
04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1636] (rev c3) (prog-if 00 [VGA controller])
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:0123]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort- <MAbort- >SERR- <PERR- INTx-
➜ ~ lsmod | grep rtw89
rtw89_8852be_git 12288 0
rtw89_8852b_git 364544 1 rtw89_8852be_git
rtw89_8852b_common_git 73728 1 rtw89_8852b_git
rtw89_pci_git 106496 1 rtw89_8852be_git
rtw89_core_git 1302528 3 rtw89_pci_git,rtw89_8852b_common_git,rtw89_8852b_git
mac80211 1933312 2 rtw89_pci_git,rtw89_core_git
cfg80211 1536000 3 rtw89_8852b_common_git,rtw89_core_git,mac80211
➜ ~ modinfo rtw89_pci_git | grep -E "filename|version"
filename: /lib/modules/7.0.0-15-generic/updates/dkms/rtw89_pci_git.ko.zst
srcversion: 859E3F7752FF2B6C97D4884
vermagic: 7.0.0-15-generic SMP preempt mod_unload modversions
➜ ~ sudo systool -v -m rtw89_pci_git
Module = "rtw89_pci_git"
Attributes:
coresize = "106496"
initsize = "0"
initstate = "live"
refcnt = "1"
srcversion = "859E3F7752FF2B6C97D4884"
taint = "OE"
uevent = <store method only>
Parameters:
disable_aspm_l1ss = "N"
disable_aspm_l1 = "N"
disable_clkreq = "N"
Sections:
.altinstr_replacement= "0xffffffffc0afcc74"
.altinstructions = "0xffffffffc069b270"
.bss = "0xffffffffc081a448"
.call_sites = "0xffffffffc069dee8"
.data = "0xffffffffc081a460"
.gnu.linkonce.this_module= "0xffffffffc081afc0"
.note.Linux = "0xffffffffc069ec8c"
.note.gnu.build-id = "0xffffffffc069e8a0"
.retpoline_sites = "0xffffffffc069d1a0"
.return_sites = "0xffffffffc069dc80"
.rodata = "0xffffffffc069b2a0"
.smp_locks = "0xffffffffc069d11c"
.static_call_sites = "0xffffffffc065f010"
.strtab = "0xffffffffc084a930"
.symtab = "0xffffffffc0847000"
.text = "0xffffffffc0af0000"
__bug_table = "0xffffffffc081a000"
__dyndbg = "0xffffffffc081af60"
__jump_table = "0xffffffffc065f000"
__kcrctab = "0xffffffffc069b1d4"
__ksymtab = "0xffffffffc069b000"
__ksymtab_strings = "0xffffffffc069e8c4"
__mcount_loc = "0xffffffffc069cd82"
__param = "0xffffffffc069d128"
__patchable_function_entries= "0xffffffffc081a070"
➜ ~ sudo systool -v -m rtw89_core_git
Module = "rtw89_core_git"
Attributes:
coresize = "1302528"
initsize = "0"
initstate = "live"
refcnt = "3"
srcversion = "9FA7AA3E59344F2B99D0942"
taint = "OE"
uevent = <store method only>
Parameters:
debug_mask = "0"
disable_ps_mode = "N"
Sections:
.altinstr_replacement= "0xffffffffc05fb750"
.altinstructions = "0xffffffffc07c0860"
.bss = "0xffffffffc097f708"
.call_sites = "0xffffffffc07e55bc"
.data..read_mostly = "0xffffffffc099be68"
.data = "0xffffffffc097f720"
.gnu.linkonce.this_module= "0xffffffffc099be80"
.note.Linux = "0xffffffffc07f02c0"
.note.gnu.build-id = "0xffffffffc07ef540"
.retpoline_sites = "0xffffffffc07e04c0"
.return_sites = "0xffffffffc07e3b20"
.rodata = "0xffffffffc07c08e0"
.smp_locks = "0xffffffffc07e0228"
.static_call_sites = "0xffffffffc0659230"
.strtab = "0xffffffffc09e40e8"
.symtab = "0xffffffffc09cd000"
.text = "0xffffffffc0540000"
__bug_table = "0xffffffffc097c000"
__dyndbg = "0xffffffffc099b880"
__jump_table = "0xffffffffc0659000"
__kcrctab = "0xffffffffc07c0648"
__ksymtab = "0xffffffffc07c0000"
__ksymtab_strings = "0xffffffffc07ef564"
__mcount_loc = "0xffffffffc07de11e"
__param = "0xffffffffc07e0470"
__patchable_function_entries= "0xffffffffc097d5f0"
➜ ~ sudo dmesg | grep -i rtw89 | tail -n 100
[ 1.413281] rtw89_core_git: loading out-of-tree module taints kernel.
[ 1.413287] rtw89_core_git: module verification failed: signature and/or required key missing - tainting kernel
[ 1.439064] rtw89_8852be_git 0000:03:00.0: loaded firmware rtw89/rtw8852b_fw-2.bin
[ 1.439186] rtw89_8852be_git 0000:03:00.0: enabling device (0000 -> 0003)
[ 1.441152] rtw89_8852be_git 0000:03:00.0: git commit e36615e79962337b2f8c70f43419eb3f942362dc
[ 1.447080] rtw89_8852be_git 0000:03:00.0: Firmware version 0.29.29.15 (6fb3ec41), cmd version 0, type 5
[ 1.447086] rtw89_8852be_git 0000:03:00.0: Firmware version 0.29.29.15 (6fb3ec41), cmd version 0, type 3
[ 1.764417] rtw89_8852be_git 0000:03:00.0: Firmware element BB version: 00 28 00 00
[ 1.764443] rtw89_8852be_git 0000:03:00.0: Firmware element radio A version: 00 32 00 00
[ 1.764468] rtw89_8852be_git 0000:03:00.0: Firmware element NCTL version: 00 0a 00 00
[ 1.764593] rtw89_8852be_git 0000:03:00.0: Firmware element TXPWR version: 00 43 00 00
[ 1.764594] rtw89_8852be_git 0000:03:00.0: Firmware element TXPWR version: 00 43 00 00
[ 1.764595] rtw89_8852be_git 0000:03:00.0: Firmware element TXPWR version: 00 43 00 00
[ 1.764603] rtw89_8852be_git 0000:03:00.0: Firmware element PWR_TRK version: 00 32 00 00
[ 1.764609] rtw89_8852be_git 0000:03:00.0: Firmware element REGD version: 00 49 00 33
[ 1.764703] rtw89_8852be_git 0000:03:00.0: chip info CID: 0, CV: 1, AID: 0, ACV: 1, RFE: 1
[ 1.766519] rtw89_8852be_git 0000:03:00.0: rfkill hardware state changed to enable
[ 1.774493] rtw89_8852be_git 0000:03:00.0 wlp3s0: renamed from wlan0
[ 454.935586] rtw89_8852be_git 0000:03:00.0: rtw89_hw_scan_offload failed ret -110
[ 654.062877] rtw89_8852be_git 0000:03:00.0: rtw89_hw_scan_offload failed ret -110
[ 1053.695670] rtw89_8852be_git 0000:03:00.0: rtw89_hw_scan_offload failed ret -110
[ 1254.566875] rtw89_8852be_git 0000:03:00.0: rtw89_hw_scan_offload failed ret -110
[ 1455.270679] rtw89_8852be_git 0000:03:00.0: rtw89_hw_scan_offload failed ret -110
➜ ~ cat /etc/modprobe.d/rtw89.conf
#
# Configuration file for the out-of-kernel rtw89 drivers
#
# Link: https://github.com/morrownr/rtw89
#
options rtw89_core_git debug_mask=0x0
options rtw89_core_git disable_ps_mode=y
options rtw89_pci_git disable_clkreq=y
options rtw89_pci_git disable_aspm_l1=y
options rtw89_pci_git disable_aspm_l1ss=y
options rtw89_usb_git switch_usb_mode=y
# Blacklist the in-kernel rtw89 drivers
blacklist rtw89_8851bu
blacklist rtw89_8851be
blacklist rtw89_8851b
blacklist rtw89_8852au
blacklist rtw89_8852ae
blacklist rtw89_8852a
blacklist rtw89_8852b_common
blacklist rtw89_8852bu
blacklist rtw89_8852be
blacklist rtw89_8852b
blacklist rtw89_8852bte
blacklist rtw89_8852bt
blacklist rtw89_8852cu
blacklist rtw89_8852ce
blacklist rtw89_8852c
blacklist rtw89_8922au
blacklist rtw89_8922ae
blacklist rtw89_8922a
blacklist rtw89_core
blacklist rtw89_usb
blacklist rtw89_pci
# Blacklist Larry's rtw89 drivers
blacklist rtw89core
blacklist rtw89pci
blacklist rtw_8851b
blacklist rtw_8851be
blacklist rtw_8852a
blacklist rtw_8852ae
blacklist rtw_8852b
blacklist rtw_8852be
blacklist rtw_8852c
blacklist rtw_8852ce
blacklist rtw_8922a
blacklist rtw_8922ae
➜ ~ dkms status
rtw89/7.1, 7.0.0-15-generic, x86_64: installed
➜ ~
➜ ~ modinfo rtw89_core_git | head -n 50
filename: /lib/modules/7.0.0-15-generic/updates/dkms/rtw89_core_git.ko.zst
license: Dual BSD/GPL
description: Realtek 802.11ax wireless core module
author: Realtek Corporation
srcversion: 9FA7AA3E59344F2B99D0942
depends: cfg80211,mac80211
name: rtw89_core_git
retpoline: Y
vermagic: 7.0.0-15-generic SMP preempt mod_unload modversions
sig_id: PKCS#7
signer: corex-home Secure Boot Module Signature key
sig_key: 17:99:E1:4B:A7:1D:28:52:D6:7D:97:79:C3:7A:ED:05:7E:8B:9D:36
sig_hashalgo: sha512
signature: 63:D7:1D:D7:27:88:B9:C3:4C:FF:40:E1:7F:07:6A:FE:E3:CA:B2:64:
DE:D1:44:36:35:B5:9D:EB:7B:C8:90:08:F9:E4:15:34:7B:00:B9:15:
32:B7:38:7D:FB:B8:87:65:AB:3A:45:CA:FE:B3:DF:9D:A6:F7:76:05:
DC:66:27:8D:9F:49:57:2D:05:F7:14:D4:D3:C4:7B:3E:4B:36:90:C0:
C7:E4:73:FE:AF:55:B8:66:A0:2F:6D:7F:EC:21:ED:21:D8:E3:6E:CB:
86:5C:39:D4:70:9A:94:57:0B:FB:A2:9F:85:F6:1A:D1:E7:72:F8:1B:
7C:47:68:B6:51:22:45:32:40:3B:44:70:1C:C6:3B:41:E4:C8:48:3F:
4A:66:C8:C7:BC:0A:22:94:E4:A9:1A:67:86:EE:FD:F1:9D:3C:E1:9A:
BA:BD:12:59:42:8C:23:A3:BB:B8:54:6E:01:D4:25:69:44:14:4F:2E:
1F:20:E6:58:F3:8E:8A:CD:4B:D0:71:0B:5E:E2:A2:E1:A9:0B:70:0E:
85:C9:62:60:EA:C0:59:76:8B:8C:0C:3B:B8:2D:EB:B2:D4:07:A6:BD:
46:42:E2:B2:B3:A1:2C:90:17:43:F4:4C:AF:52:DC:11:CC:0E:90:75:
E2:BB:19:B7:66:41:BD:C6:BF:74:0A:DE:85:A9:91:2A
parm: debug_mask:Debugging mask (uint)
parm: disable_ps_mode:Set Y to disable low power mode (bool)
➜ ~ modinfo rtw89_pci_git | head -n 50
filename: /lib/modules/7.0.0-15-generic/updates/dkms/rtw89_pci_git.ko.zst
license: Dual BSD/GPL
description: Realtek PCI 802.11ax wireless driver
author: Realtek Corporation
srcversion: 859E3F7752FF2B6C97D4884
depends: mac80211,rtw89_core_git
name: rtw89_pci_git
retpoline: Y
vermagic: 7.0.0-15-generic SMP preempt mod_unload modversions
sig_id: PKCS#7
signer: corex-home Secure Boot Module Signature key
sig_key: 17:99:E1:4B:A7:1D:28:52:D6:7D:97:79:C3:7A:ED:05:7E:8B:9D:36
sig_hashalgo: sha512
signature: 2D:6C:D9:C2:E7:07:DD:60:2B:36:A3:A1:88:3C:3F:29:24:8D:D0:23:
6D:E3:90:1F:6C:FC:B5:F5:7B:9D:18:E7:62:56:20:94:2F:C1:B3:1C:
FD:C8:64:F9:01:1E:AB:EF:C7:EA:A8:39:66:8C:56:DB:6D:CF:3A:18:
0E:B1:D0:35:54:4E:06:F5:BF:AB:0B:EB:BB:44:74:A5:A6:D2:B9:67:
AE:F9:BE:04:A9:2D:DC:36:98:FC:4B:E5:A1:32:FB:BB:B8:81:65:E1:
E1:9F:5B:CA:90:3C:DD:6F:7D:C8:50:5B:77:18:1F:0E:28:E1:6E:0A:
7B:9C:F8:7F:29:7D:6B:26:14:0A:C3:D5:A6:BC:56:A9:2D:20:17:51:
22:8F:D4:3D:E2:A6:C2:14:E0:72:FD:7B:52:16:63:AA:41:74:F8:43:
1C:84:43:A0:ED:D1:C9:67:55:83:50:7D:AE:B0:63:C3:9F:00:19:60:
87:CA:12:51:FF:CE:A6:D4:9E:F1:92:A5:41:3D:AE:A3:FA:21:A9:02:
ED:1A:D5:7F:DA:52:FB:33:F8:4C:D8:67:27:6F:1F:74:38:7A:9C:C4:
B5:D8:E5:B7:FF:81:93:FB:78:3D:D5:ED:B5:01:CA:76:50:DF:74:B4:
C5:4D:57:3B:7B:1F:54:9D:ED:7A:DC:B8:BD:82:47:EC
parm: disable_clkreq:Set Y to disable PCI clkreq support (bool)
parm: disable_aspm_l1:Set Y to disable PCI ASPM L1 support (bool)
parm: disable_aspm_l1ss:Set Y to disable PCI L1SS support (bool)
➜ ~ nmcli device status
DEVICE TYPE STATE CONNECTION
wlp3s0 wifi connected Airtel_Dinesh_5GHz
br-0204f21e05b1 bridge connected (externally) br-0204f21e05b1
br-b1a51f465e89 bridge connected (externally) br-b1a51f465e89
lo loopback connected (externally) lo
docker0 bridge connected (externally) docker0
p2p-dev-wlp3s0 wifi-p2p disconnected --
enp2s0 ethernet unavailable --
veth27552ef ethernet unmanaged --
vetha6d0174 ethernet unmanaged --
vethbbda840 ethernet unmanaged --
vethdddc030 ethernet unmanaged --
vethee312fc ethernet unmanaged --
➜ ~ nmcli dev show wlp3s0
GENERAL.DEVICE: wlp3s0
GENERAL.TYPE: wifi
GENERAL.HWADDR: 38:7A:CC:92:AF:E2
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: Airtel_Dinesh_5GHz
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
IP4.ADDRESS[1]: 192.168.1.50/24
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 600
IP4.DNS[1]: 192.168.1.1
IP4.WINS[1]: 192.168.1.1
IP6.ADDRESS[1]: 2401:4900:1f25:4d01:9733:6fb4:c08b:44f5/64
IP6.ADDRESS[2]: 2401:4900:1f25:4d01:2b73:acf0:f48b:31fe/64
IP6.ADDRESS[3]: fe80::13e0:3386:3d28:cd16/64
IP6.GATEWAY: fe80::6e4f:89ff:fece:7319
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024
IP6.ROUTE[2]: dst = 2401:4900:1f25:4d01::/64, nh = ::, mt = 600
IP6.ROUTE[3]: dst = 2401:4900:1f25:4d01::/64, nh = fe80::6e4f:89ff:fece:7319, mt = 605
IP6.ROUTE[4]: dst = ::/0, nh = fe80::6e4f:89ff:fece:7319, mt = 600
IP6.DNS[1]: 2401:4900:50:9::280
IP6.DNS[2]: 2401:4900:50:9::220
➜ ~ nmcli connection show "Airtel_Dinesh_5GHz"
connection.id: Airtel_Dinesh_5GHz
connection.uuid: d67ed3b4-2322-4b1d-b6b5-9b76fb0d710b
connection.stable-id: --
connection.type: 802-11-wireless
connection.interface-name: wlp3s0
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1778828695
connection.permissions: --
connection.zone: --
connection.controller: --
connection.master: --
connection.slave-type: --
connection.port-type: --
connection.autoconnect-slaves: -1 (default)
connection.autoconnect-ports: -1 (default)
connection.down-on-poweroff: -1 (default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.ip-ping-timeout: 0
connection.ip-ping-addresses: --
connection.ip-ping-addresses-require-all:-1 (default)
connection.metered: unknown
connection.lldp: default
connection.mdns: -1 (default)
connection.llmnr: -1 (default)
connection.dns-over-tls: -1 (default)
connection.mptcp-flags: 0x0 (default)
connection.wait-device-timeout: -1
connection.wait-activation-delay: -1
802-11-wireless.ssid: Airtel_Dinesh_5GHz
802-11-wireless.mode: infrastructure
802-11-wireless.band: --
802-11-wireless.channel: 0
802-11-wireless.bssid: 6C:4F:89:CE:73:20
802-11-wireless.mac-address: --
802-11-wireless.cloned-mac-address: permanent
802-11-wireless.generate-mac-address-mask:--
802-11-wireless.mac-address-denylist: --
802-11-wireless.mac-address-randomization:never
802-11-wireless.mtu: auto
802-11-wireless.seen-bssids: 6C:4F:89:CE:73:20
802-11-wireless.hidden: no
802-11-wireless.powersave: 2 (disable)
802-11-wireless.wake-on-wlan: 0x1 (default)
802-11-wireless.ap-isolation: -1 (default)
802-11-wireless.channel-width: 0 (auto)
802-11-wireless-security.key-mgmt: wpa-psk
802-11-wireless-security.wep-tx-keyidx: 0
802-11-wireless-security.auth-alg: open
802-11-wireless-security.proto: --
802-11-wireless-security.pairwise: --
802-11-wireless-security.group: --
802-11-wireless-security.pmf: 0 (default)
802-11-wireless-security.leap-username: --
802-11-wireless-security.wep-key0: <hidden>
802-11-wireless-security.wep-key1: <hidden>
802-11-wireless-security.wep-key2: <hidden>
802-11-wireless-security.wep-key3: <hidden>
802-11-wireless-security.wep-key-flags: 0 (none)
802-11-wireless-security.wep-key-type: unknown
802-11-wireless-security.psk: <hidden>
802-11-wireless-security.psk-flags: 0 (none)
802-11-wireless-security.leap-password: <hidden>
802-11-wireless-security.leap-password-flags:0 (none)
802-11-wireless-security.wps-method: 0x0 (default)
802-11-wireless-security.fils: 0 (default)
ipv4.method: auto
ipv4.dns: --
ipv4.dns-search: --
ipv4.dns-options: --
ipv4.dns-priority: 0
ipv4.addresses: --
ipv4.gateway: --
ipv4.routes: --
ipv4.route-metric: -1
ipv4.route-table: 0 (unspec)
ipv4.routing-rules: --
ipv4.replace-local-rule: -1 (default)
ipv4.dhcp-send-release: -1 (default)
ipv4.routed-dns: -1 (default)
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-iaid: --
ipv4.dhcp-dscp: --
ipv4.dhcp-timeout: 0 (default)
ipv4.dhcp-send-hostname-deprecated: yes
ipv4.dhcp-send-hostname: -1 (default)
ipv4.forwarding: -1 (default)
ipv4.dhcp-hostname: --
ipv4.dhcp-fqdn: --
ipv4.dhcp-hostname-flags: 0x0 (none)
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.required-timeout: -1 (default)
ipv4.dad-timeout: -1 (default)
ipv4.dhcp-vendor-class-identifier: --
ipv4.dhcp-ipv6-only-preferred: -1 (default)
ipv4.link-local: 0 (default)
ipv4.dhcp-reject-servers: --
ipv4.auto-route-ext-gw: -1 (default)
ipv4.shared-dhcp-range: --
ipv4.shared-dhcp-lease-time: 0 (default)
ipv6.method: auto
ipv6.dns: --
ipv6.dns-search: --
ipv6.dns-options: --
ipv6.dns-priority: 0
ipv6.addresses: --
ipv6.gateway: --
ipv6.routes: --
ipv6.route-metric: -1
ipv6.route-table: 0 (unspec)
ipv6.routing-rules: --
ipv6.replace-local-rule: -1 (default)
ipv6.dhcp-send-release: -1 (default)
ipv6.routed-dns: -1 (default)
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.required-timeout: -1 (default)
ipv6.ip6-privacy: -1 (default)
ipv6.temp-valid-lifetime: 0 (default)
ipv6.temp-preferred-lifetime: 0 (default)
ipv6.addr-gen-mode: default
ipv6.ra-timeout: 0 (default)
ipv6.mtu: auto
ipv6.dhcp-pd-hint: --
ipv6.dhcp-duid: --
ipv6.dhcp-iaid: --
ipv6.dhcp-timeout: 0 (default)
ipv6.dhcp-send-hostname-deprecated: yes
ipv6.dhcp-send-hostname: -1 (default)
ipv6.dhcp-hostname: --
ipv6.dhcp-hostname-flags: 0x0 (none)
ipv6.auto-route-ext-gw: -1 (default)
ipv6.token: --
proxy.method: none
proxy.browser-only: no
proxy.pac-url: --
proxy.pac-script: --
GENERAL.NAME: Airtel_Dinesh_5GHz
GENERAL.UUID: d67ed3b4-2322-4b1d-b6b5-9b76fb0d710b
GENERAL.DEVICES: wlp3s0
GENERAL.IP-IFACE: wlp3s0
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
GENERAL.DEFAULT6: yes
GENERAL.SPEC-OBJECT: /org/freedesktop/NetworkManager/AccessPoint/2
GENERAL.VPN: no
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/1
GENERAL.ZONE: --
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: 192.168.1.50/24
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE[1]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 600
IP4.DNS[1]: 192.168.1.1
IP4.WINS[1]: 192.168.1.1
DHCP4.OPTION[1]: dhcp_client_identifier = 01:38:7a:cc:92:af:e2
DHCP4.OPTION[2]: dhcp_lease_time = 86400
DHCP4.OPTION[3]: dhcp_server_identifier = 192.168.1.1
DHCP4.OPTION[4]: domain_name_servers = 192.168.1.1
DHCP4.OPTION[5]: expiry = 1778915095
DHCP4.OPTION[6]: ip_address = 192.168.1.50
DHCP4.OPTION[7]: netbios_name_servers = 192.168.1.1
DHCP4.OPTION[8]: requested_broadcast_address = 1
DHCP4.OPTION[9]: requested_domain_name = 1
DHCP4.OPTION[10]: requested_domain_name_servers = 1
DHCP4.OPTION[11]: requested_domain_search = 1
DHCP4.OPTION[12]: requested_host_name = 1
DHCP4.OPTION[13]: requested_interface_mtu = 1
DHCP4.OPTION[14]: requested_ms_classless_static_routes = 1
DHCP4.OPTION[15]: requested_nis_domain = 1
DHCP4.OPTION[16]: requested_nis_servers = 1
DHCP4.OPTION[17]: requested_ntp_servers = 1
DHCP4.OPTION[18]: requested_rfc3442_classless_static_routes = 1
DHCP4.OPTION[19]: requested_root_path = 1
DHCP4.OPTION[20]: requested_routers = 1
DHCP4.OPTION[21]: requested_static_routes = 1
DHCP4.OPTION[22]: requested_subnet_mask = 1
DHCP4.OPTION[23]: requested_time_offset = 1
DHCP4.OPTION[24]: requested_wpad = 1
DHCP4.OPTION[25]: routers = 192.168.1.1
DHCP4.OPTION[26]: subnet_mask = 255.255.255.0
IP6.ADDRESS[1]: 2401:4900:1f25:4d01:9733:6fb4:c08b:44f5/64
IP6.ADDRESS[2]: 2401:4900:1f25:4d01:2b73:acf0:f48b:31fe/64
IP6.ADDRESS[3]: fe80::13e0:3386:3d28:cd16/64
IP6.GATEWAY: fe80::6e4f:89ff:fece:7319
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024
IP6.ROUTE[2]: dst = 2401:4900:1f25:4d01::/64, nh = ::, mt = 600
IP6.ROUTE[3]: dst = 2401:4900:1f25:4d01::/64, nh = fe80::6e4f:89ff:fece:7319, mt = 605
IP6.ROUTE[4]: dst = ::/0, nh = fe80::6e4f:89ff:fece:7319, mt = 600
IP6.DNS[1]: 2401:4900:50:9::280
IP6.DNS[2]: 2401:4900:50:9::220
➜ ~ cat /sys/module/rtw89_core_git/parameters/*
0
N
➜ ~ cat /sys/module/rtw89_pci_git/parameters/*
N
N
N
➜ ~ iw dev wlp3s0 link
Connected to 6c:4f:89:ce:73:20 (on wlp3s0)
SSID: Airtel_Dinesh_5GHz
freq: 5240.0
RX: 8143468 bytes (52824 packets)
TX: 1371775 bytes (8523 packets)
signal: -46 dBm
rx bitrate: 600.4 MBit/s 80MHz HE-MCS 11 HE-NSS 1 HE-GI 0 HE-DCM 0
tx bitrate: 288.2 MBit/s 80MHz HE-MCS 3 HE-NSS 2 HE-GI 0 HE-DCM 0
bss flags: short-slot-time
dtim period: 1
beacon int: 100
➜ ~
I am experiencing periodic WiFi instability on a Realtek RTL8852BE device using the out-of-tree morrownr/rtw89 DKMS driver.
The kernel repeatedly logs:
rtw89_hw_scan_offload failed ret -110This occurs every few minutes and sometimes correlates with short SSH freezes / WiFi stalls.
Problem Description
The following kernel message appears periodically:
rtw89_hw_scan_offload failed ret -110
**Example logs:
This happens repeatedly every few minutes (not constant interval, but frequent enough to correlate with connectivity issues).
Observed Behavior
WiFi remains connected most of the time
Every few minutes:
kernel logs scan offload failure (-110)
occasional SSH freeze (~1–5 seconds)
No full disconnect, but noticeable instability
Issue persists even after:
disabling WiFi power save
disabling MAC randomization
pinning BSSID
Debug Information