Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linux: rtw88: update SDIO patches 20220611 to RFC-v1 #7301

Merged
merged 2 commits into from Jan 9, 2023

Conversation

heitbaum
Copy link
Contributor

linux-122-rtw88-rfc-v1.patch from:
https://lore.kernel.org/linux-wireless/20221227233020.284266-1-martin.blumenstingl@googlemail.com/t.mbox.gz

pre-req is:

  • linux: rtw88: backport USB patches from wireless-next 6.2

@heitbaum
Copy link
Contributor Author

kernel warning - Voluntary context switch within RCU read-side critical section!

##############################################
#                 LibreELEC                  #
#            https://libreelec.tv            #
##############################################

LibreELEC (heitbaum): devel-20221228062139-9a01bf2 (H6.arm)
tx6:~ # dmesg
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.1.1 (docker@4b560baef439) (aarch64-none-elf-gcc-12.2.0 (GCC) 12.2.0, GNU ld (GNU Binutils) 2.39) #1 SMP PREEMPT Wed Dec 28 06:24:24 UTC 2022
[    0.000000] Machine model: Tanix TX6
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000] cma: Reserved 384 MiB at 0x00000000e4800000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 19 pages/cpu s37928 r8192 d31704 u77824
[    0.000000] pcpu-alloc: s37928 r8192 d31704 u77824 alloc=19*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 774144
[    0.000000] Kernel command line: boot=UUID=0504-4125 disk=UUID=8936b974-c5d5-43ee-8cbe-1e6769d04862 quiet console=ttyS0,115200 console=tty1
[    0.000000] Unknown kernel command line parameters "boot=UUID=0504-4125 disk=UUID=8936b974-c5d5-43ee-8cbe-1e6769d04862", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 2668372K/3145728K available (11712K kernel code, 1354K rwdata, 4196K rodata, 4288K init, 423K bss, 84140K reserved, 393216K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000000] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000127] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000558] Console: colour dummy device 80x25
[    0.000595] printk: console [tty1] enabled
[    0.000633] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.000647] pid_max: default: 32768 minimum: 301
[    0.000712] LSM: Security Framework initializing
[    0.000848] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.000882] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.001859] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.002470] cblist_init_generic: Setting adjustable number of callback queues.
[    0.002481] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.002562] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.002731] rcu: Hierarchical SRCU implementation.
[    0.002736] rcu:     Max phase no-delay instances is 1000.
[    0.003788] smp: Bringing up secondary CPUs ...
[    0.004747] Detected VIPT I-cache on CPU1
[    0.004834] cacheinfo: Unable to detect cache hierarchy for CPU 1
[    0.004876] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.005624] Detected VIPT I-cache on CPU2
[    0.005688] cacheinfo: Unable to detect cache hierarchy for CPU 2
[    0.005711] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.006384] Detected VIPT I-cache on CPU3
[    0.006450] cacheinfo: Unable to detect cache hierarchy for CPU 3
[    0.006472] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.006540] smp: Brought up 1 node, 4 CPUs
[    0.006555] SMP: Total of 4 processors activated.
[    0.006561] CPU features: detected: 32-bit EL0 Support
[    0.006566] CPU features: detected: CRC32 instructions
[    0.006627] CPU: All CPU(s) started at EL2
[    0.006632] alternatives: applying system-wide alternatives
[    0.007822] devtmpfs: initialized
[    0.013506] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.013535] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.025991] pinctrl core: initialized pinctrl subsystem
[    0.027295] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.028740] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.029021] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.029251] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.029670] thermal_sys: Registered thermal governor 'step_wise'
[    0.029709] cpuidle: using governor menu
[    0.029860] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.029956] ASID allocator initialised with 65536 entries
[    0.030653] Serial: AMBA PL011 UART driver
[    0.041250] platform 6510000.tcon-top: Fixing up cyclic dependency with 6000000.hdmi
[    0.041527] platform 6515000.lcd-controller: Fixing up cyclic dependency with 6510000.tcon-top
[    0.043073] platform connector: Fixing up cyclic dependency with 6000000.hdmi
[    0.054218] cryptd: max_cpu_qlen set to 1000
[    0.056298] iommu: Default domain type: Translated 
[    0.056311] iommu: DMA domain TLB invalidation policy: strict mode 
[    0.056603] SCSI subsystem initialized
[    0.056733] libata version 3.00 loaded.
[    0.056944] usbcore: registered new interface driver usbfs
[    0.056982] usbcore: registered new interface driver hub
[    0.057017] usbcore: registered new device driver usb
[    0.057332] mc: Linux media interface: v0.10
[    0.057359] videodev: Linux video capture interface: v2.00
[    0.057453] pps_core: LinuxPPS API ver. 1 registered
[    0.057459] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.057475] PTP clock support registered
[    0.058020] Advanced Linux Sound Architecture Driver Initialized.
[    0.058795] clocksource: Switched to clocksource arch_sys_counter
[    0.059000] VFS: Disk quotas dquot_6.6.0
[    0.059045] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.066222] NET: Registered PF_INET protocol family
[    0.066603] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.070375] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.070463] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.070484] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.070771] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear)
[    0.071826] TCP: Hash tables configured (established 32768 bind 32768)
[    0.072006] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.072118] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.072383] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.072857] RPC: Registered named UNIX socket transport module.
[    0.072865] RPC: Registered udp transport module.
[    0.072870] RPC: Registered tcp transport module.
[    0.072874] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.083628] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.085522] Initialise system trusted keyrings
[    0.085884] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[    0.093314] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.094366] NFS: Registering the id_resolver key type
[    0.094416] Key type id_resolver registered
[    0.094422] Key type id_legacy registered
[    0.094512] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.094519] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.095570] Key type cifs.idmap registered
[    0.144810] NET: Registered PF_ALG protocol family
[    0.144838] Key type asymmetric registered
[    0.144844] Asymmetric key parser 'x509' registered
[    0.145952] alg: self-tests for CTR-KDF (hmac(sha256)) passed
[    0.146046] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.146152] io scheduler mq-deadline registered
[    0.146159] io scheduler kyber registered
[    0.162698] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.167942] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.173673] loop: module loaded
[    0.194390] tun: Universal TUN/TAP device driver, 1.6
[    0.197865] usbcore: registered new interface driver uas
[    0.197918] usbcore: registered new interface driver usb-storage
[    0.200640] sun6i-rtc 7000000.rtc: registered as rtc0
[    0.200673] sun6i-rtc 7000000.rtc: setting system clock to 2022-12-28T06:56:08 UTC (1672210568)
[    0.200780] sun6i-rtc 7000000.rtc: RTC enabled
[    0.200899] i2c_dev: i2c /dev entries driver
[    0.201380] ir_imon_decoder: IR iMON protocol handler initialized
[    0.201386] IR JVC protocol handler initialized
[    0.201390] IR MCE Keyboard/mouse protocol handler initialized
[    0.201394] IR NEC protocol handler initialized
[    0.201398] IR RC5(x/sz) protocol handler initialized
[    0.201401] IR RC6 protocol handler initialized
[    0.201405] IR RCMM protocol handler initialized
[    0.201409] IR SANYO protocol handler initialized
[    0.201412] IR Sharp protocol handler initialized
[    0.201416] IR Sony protocol handler initialized
[    0.201420] IR XMP protocol handler initialized
[    0.201461] usbcore: registered new interface driver xbox_remote
[    0.202774] sunxi-wdt 7020400.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    0.203644] sdhci: Secure Digital Host Controller Interface driver
[    0.203649] sdhci: Copyright(c) Pierre Ossman
[    0.203751] Synopsys Designware Multimedia Card Interface Driver
[    0.204582] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.205431] ledtrig-cpu: registered to indicate activity on CPUs
[    0.205678] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    0.205816] sun8i-ce 1904000.crypto: Set mod clock to 300000000 (300 Mhz) from 24000000 (24 Mhz)
[    0.206134] sun8i-ce 1904000.crypto: will run requests pump with realtime priority
[    0.206251] sun8i-ce 1904000.crypto: will run requests pump with realtime priority
[    0.206347] sun8i-ce 1904000.crypto: will run requests pump with realtime priority
[    0.206441] sun8i-ce 1904000.crypto: will run requests pump with realtime priority
[    0.206516] sun8i-ce 1904000.crypto: Register cbc(aes)
[    0.206573] sun8i-ce 1904000.crypto: Register ecb(aes)
[    0.206595] sun8i-ce 1904000.crypto: Register cbc(des3_ede)
[    0.206612] sun8i-ce 1904000.crypto: Register ecb(des3_ede)
[    0.206629] sun8i-ce 1904000.crypto: Register md5
[    0.206646] sun8i-ce 1904000.crypto: Register sha1
[    0.206663] sun8i-ce 1904000.crypto: Register sha224
[    0.206680] sun8i-ce 1904000.crypto: Register sha256
[    0.206697] sun8i-ce 1904000.crypto: Register sha384
[    0.206715] sun8i-ce 1904000.crypto: Register sha512
[    0.206733] sun8i-ce 1904000.crypto: Register stdrng
[    0.207868] sun8i-ce 1904000.crypto: CryptoEngine Die ID 0
[    0.208329] hid: raw HID events driver (C) Jiri Kosina
[    0.208913] usbcore: registered new interface driver usbhid
[    0.208920] usbhid: USB HID core driver
[    0.209071] cedrus 1c0e000.video-codec: Adding to iommu group 0
[    0.209383] random: crng init done
[    0.209937] cedrus 1c0e000.video-codec: Device registered as /dev/video0
[    0.214684] Initializing XFRM netlink socket
[    0.215207] NET: Registered PF_INET6 protocol family
[    0.216069] Segment Routing with IPv6
[    0.216096] In-situ OAM (IOAM) with IPv6
[    0.216153] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    0.216617] NET: Registered PF_PACKET protocol family
[    0.216693] Key type dns_resolver registered
[    0.217080] registered taskstats version 1
[    0.217103] Loading compiled-in X.509 certificates
[    0.234346] platform 1100000.mixer: Fixing up cyclic dependency with 6510000.tcon-top
[    0.234731] sun8i-mixer 1100000.mixer: Adding to iommu group 0
[    0.239998] sun50i-h6-pinctrl 300b000.pinctrl: initialized sunXi PIO driver
[    0.242324] sun50i-h6-r-pinctrl 7022000.pinctrl: initialized sunXi PIO driver
[    0.242780] sun50i-h6-pinctrl 300b000.pinctrl: supply vcc-pb not found, using dummy regulator
[    0.243404] sun50i-h6-pinctrl 300b000.pinctrl: supply vcc-ph not found, using dummy regulator
[    0.243845] printk: console [ttyS0] disabled
[    0.264213] 5000000.serial: ttyS0 at MMIO 0x5000000 (irq = 224, base_baud = 1500000) is a 16550A
[    0.264435] printk: console [ttyS0] enabled
[    0.285820] 5000400.serial: ttyS1 at MMIO 0x5000400 (irq = 225, base_baud = 1500000) is a 16550A
[    0.285947] serial serial0: tty port ttyS1 registered
[    0.287036] sun4i-drm display-engine: Adding to iommu group 0
[    0.306444] sun4i-drm display-engine: bound 1100000.mixer (ops sun8i_mixer_ops)
[    0.306649] sun4i-drm display-engine: bound 6510000.tcon-top (ops sun8i_tcon_top_ops)
[    0.306994] sun4i-drm display-engine: bound 6515000.lcd-controller (ops sun4i_tcon_ops)
[    0.307061] sun8i-dw-hdmi 6000000.hdmi: supply hvcc not found, using dummy regulator
[    0.307397] sun8i-dw-hdmi 6000000.hdmi: Detected HDMI TX controller v2.12a with HDCP (DWC HDMI 2.0 TX PHY)
[    0.307938] sun8i-dw-hdmi 6000000.hdmi: registered DesignWare HDMI I2C bus driver
[    0.308825] sun4i-drm display-engine: bound 6000000.hdmi (ops sun8i_dw_hdmi_ops)
[    0.309246] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[    0.808318] Console: switching to colour frame buffer device 480x135
[    0.905495] sun4i-drm display-engine: [drm] fb0: sun4i-drmdrmfb frame buffer device
[    0.907021] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
[    0.907050] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 1
[    0.907199] xhci-hcd xhci-hcd.4.auto: hcc params 0x0220f064 hci version 0x100 quirks 0x0000000002010010
[    0.907262] xhci-hcd xhci-hcd.4.auto: irq 228, io mem 0x05200000
[    0.907430] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
[    0.907444] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 2
[    0.907461] xhci-hcd xhci-hcd.4.auto: Host supports USB 3.0 SuperSpeed
[    0.908119] hub 1-0:1.0: USB hub found
[    0.908151] hub 1-0:1.0: 1 port detected
[    0.908499] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    0.908940] hub 2-0:1.0: USB hub found
[    0.908967] hub 2-0:1.0: 1 port detected
[    0.910840] ehci-platform 5101000.usb: EHCI Host Controller
[    0.910876] ehci-platform 5101000.usb: new USB bus registered, assigned bus number 3
[    0.911017] ehci-platform 5101000.usb: irq 229, io mem 0x05101000
[    0.911475] ehci-platform 5311000.usb: EHCI Host Controller
[    0.911496] ehci-platform 5311000.usb: new USB bus registered, assigned bus number 4
[    0.911593] ehci-platform 5311000.usb: irq 230, io mem 0x05311000
[    0.912056] usb_phy_generic usb_phy_generic.5.auto: supply vcc not found, using dummy regulator
[    0.912212] usb_phy_generic usb_phy_generic.5.auto: dummy supplies not allowed for exclusive requests
[    0.912405] ohci-platform 5311400.usb: Generic Platform OHCI controller
[    0.912427] ohci-platform 5311400.usb: new USB bus registered, assigned bus number 5
[    0.912544] ohci-platform 5311400.usb: irq 232, io mem 0x05311400
[    0.926813] ehci-platform 5101000.usb: USB 2.0 started, EHCI 1.00
[    0.927553] hub 3-0:1.0: USB hub found
[    0.927596] hub 3-0:1.0: 1 port detected
[    0.942815] ehci-platform 5311000.usb: USB 2.0 started, EHCI 1.00
[    0.943415] hub 4-0:1.0: USB hub found
[    0.943453] hub 4-0:1.0: 1 port detected
[    0.975281] hub 5-0:1.0: USB hub found
[    0.975310] hub 5-0:1.0: 1 port detected
[    1.118843] ohci-platform 5101400.usb: Generic Platform OHCI controller
[    1.118870] ohci-platform 5101400.usb: new USB bus registered, assigned bus number 6
[    1.119029] ohci-platform 5101400.usb: irq 231, io mem 0x05101400
[    1.119140] musb-hdrc musb-hdrc.6.auto: MUSB HDRC host driver
[    1.119159] musb-hdrc musb-hdrc.6.auto: new USB bus registered, assigned bus number 7
[    1.119689] hub 7-0:1.0: USB hub found
[    1.119719] hub 7-0:1.0: 1 port detected
[    1.124024] ac200-codec: Failed to locate of_node [id: -1]
[    1.124285] ac200-efuse: Failed to locate of_node [id: -1]
[    1.124755] ac200-ephy ac200-ephy: DMA mask not set
[    1.127992] ac200-rtc: Failed to locate of_node [id: -1]
[    1.128122] ac200-tve: Failed to locate of_node [id: -1]
[    1.131426] core: _opp_supported_by_regulators: OPP minuV: 1160000 maxuV: 1200000, not supported by regulator
[    1.131453] cpu cpu0: _opp_add: OPP not supported by regulators (1800000000)
[    1.132678] sun50i-h6-r-pinctrl 7022000.pinctrl: supply vcc-pm not found, using dummy regulator
[    1.134077] sun50i-h6-pinctrl 300b000.pinctrl: supply vcc-pf not found, using dummy regulator
[    1.134676] scpi_protocol scpi: SCP Protocol 1.2 Firmware 0.4.10000 version
[    1.135127] sunxi-mmc 4020000.mmc: Got CD GPIO
[    1.135303] sunxi-mmc 4021000.mmc: allocated mmc-pwrseq
[    1.140595] ALSA device list:
[    1.140610]   #0: allwinner-hdmi
[    1.140614]   #1: sun50i-h6-spdif
[    1.159008] sunxi-mmc 4020000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
[    1.160471] sunxi-mmc 4021000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
[    1.160482] sunxi-mmc 4022000.mmc: initialized, max. request size: 2048 KB, uses new timings mode
[    1.166592] sunxi-mmc 4021000.mmc: card claims to support voltages below defined range
[    1.176793] mmc1: new high speed SDIO card at address 0001
[    1.183291] hub 6-0:1.0: USB hub found
[    1.183314] hub 6-0:1.0: 1 port detected
[    1.185450] Freeing unused kernel memory: 4288K
[    1.202902] Run /init as init process
[    1.202910]   with arguments:
[    1.202913]     /init
[    1.202917]   with environment:
[    1.202920]     HOME=/
[    1.202923]     TERM=linux
[    1.202927]     boot=UUID=0504-4125
[    1.202931]     disk=UUID=8936b974-c5d5-43ee-8cbe-1e6769d04862
[    1.310431] mmc2: new HS200 MMC card at address 0001
[    1.311290] mmcblk2: mmc2:0001 SCA64G 57.7 GiB 
[    1.313202]  mmcblk2: p1 p2
[    1.313934] mmcblk2boot0: mmc2:0001 SCA64G 4.00 MiB 
[    1.315392] mmcblk2boot1: mmc2:0001 SCA64G 4.00 MiB 
[    1.371437] Checking disk(s):  UUID=0504-4125 UUID=8936b974-c5d5-43ee-8cbe-1e6769d04862
[    1.511761] fsck: fsck.fat 4.2 (2021-01-31)
[    1.511923] fsck: /dev/mmcblk2p1: 22 files, 17307/65501 clusters
[    1.512100] fsck: STORAGE: clean, 4130/14983168 files, 11175233/59928576 blocks
[    1.614862] usb 6-1: new low-speed USB device number 2 using ohci-platform
[    1.852388] input: Microsoft Wired Keyboard 600 as /devices/platform/soc/5101400.usb/usb6/6-1/6-1:1.0/0003:045E:07F8.0001/input/input0
[    1.911773] hid-generic 0003:045E:07F8.0001: input,hidraw0: USB HID v1.11 Keyboard [Microsoft Wired Keyboard 600] on usb-5101400.usb-1/input0
[    1.917745] input: Microsoft Wired Keyboard 600 Consumer Control as /devices/platform/soc/5101400.usb/usb6/6-1/6-1:1.1/0003:045E:07F8.0002/input/input1
[    1.975232] input: Microsoft Wired Keyboard 600 System Control as /devices/platform/soc/5101400.usb/usb6/6-1/6-1:1.1/0003:045E:07F8.0002/input/input2
[    1.975382] hid-generic 0003:045E:07F8.0002: input,hidraw1: USB HID v1.11 Device [Microsoft Wired Keyboard 600] on usb-5101400.usb-1/input1
[    1.998994] loop0: detected capacity change from 0 to 233112
[    2.135634] EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Quota mode: none.
[    2.326884] kernel-overlays-setup: setup base modules
[    2.373811] kernel-overlays-setup: added modules from /usr/lib/kernel-overlays/base/lib/modules/6.1.1
[    2.416519] kernel-overlays-setup: added firmware from /usr/lib/kernel-overlays/base/lib/firmware
[    2.421869] kernel-overlays-setup: adding overlays from /storage/.cache/kernel-overlays
[    2.427558] kernel-overlays-setup: done
[    2.766483] systemd[1]: systemd 252.4 running in system mode (-PAM -AUDIT -SELINUX -APPARMOR -IMA -SMACK -SECCOMP -GCRYPT -GNUTLS -OPENSSL -ACL +BLKID -CURL -ELFUTILS -FIDO2 +IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP -LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -TPM2 -BZIP2 -LZ4 -XZ -ZLIB -ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
[    2.766520] systemd[1]: Detected architecture arm64.
[    3.141962] systemd[1]: Queued start job for default target kodi.target.
[    3.160287] systemd[1]: Created slice system-modprobe.slice.
[    3.161225] systemd[1]: Created slice user.slice.
[    3.161468] systemd[1]: Started systemd-ask-password-console.path.
[    3.161627] systemd[1]: Started systemd-ask-password-wall.path.
[    3.161855] systemd[1]: Reached target paths.target.
[    3.161966] systemd[1]: Reached target slices.target.
[    3.172976] systemd[1]: Listening on rpcbind.socket.
[    3.173153] systemd[1]: Reached target rpcbind.target.
[    3.173508] systemd[1]: Listening on systemd-initctl.socket.
[    3.173948] systemd[1]: Listening on systemd-journald-dev-log.socket.
[    3.174319] systemd[1]: Listening on systemd-journald.socket.
[    3.175564] systemd[1]: Listening on systemd-udevd-control.socket.
[    3.176001] systemd[1]: Listening on systemd-udevd-kernel.socket.
[    3.178514] systemd[1]: Mounting dev-mqueue.mount...
[    3.181951] systemd[1]: Mounting sys-kernel-debug.mount...
[    3.182468] systemd[1]: sys-kernel-tracing.mount was skipped because of an unmet condition check (ConditionPathExists=/sys/kernel/tracing).
[    3.186330] systemd[1]: Mounting var.mount...
[    3.190659] systemd[1]: Starting kmod-static-nodes.service...
[    3.195107] systemd[1]: Starting modprobe@configfs.service...
[    3.200299] systemd[1]: Starting modprobe@drm.service...
[    3.204084] systemd[1]: Starting modprobe@fuse.service...
[    3.208182] systemd[1]: Starting show-version.service...
[    3.211516] systemd[1]: Starting storage-log.service...
[    3.216085] systemd[1]: Starting swap.service...
[    3.227965] fuse: init (API version 7.37)
[    3.235135] systemd[1]: Starting systemd-hwdb-update.service...
[    3.252036] systemd[1]: Starting systemd-modules-load.service...
[    3.257081] systemd[1]: Starting systemd-timesyncd-setup.service...
[    3.262032] systemd[1]: Starting systemd-udev-trigger.service...
[    3.267186] systemd[1]: Starting wait-time-sync.service...
[    3.276449] systemd[1]: Mounted dev-mqueue.mount.
[    3.277303] systemd[1]: Mounted sys-kernel-debug.mount.
[    3.277900] systemd[1]: Mounted var.mount.
[    3.279155] systemd[1]: Finished kmod-static-nodes.service.
[    3.280439] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[    3.281079] systemd[1]: Finished modprobe@configfs.service.
[    3.282322] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    3.283152] systemd[1]: Finished modprobe@drm.service.
[    3.284308] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[    3.285043] systemd[1]: Finished modprobe@fuse.service.
[    3.286412] systemd[1]: Finished show-version.service.
[    3.292422] systemd[1]: Finished systemd-timesyncd-setup.service.
[    3.297439] systemd[1]: Mounting sys-fs-fuse-connections.mount...
[    3.302987] systemd[1]: Mounting sys-kernel-config.mount...
[    3.326422] systemd[1]: Finished storage-log.service.
[    3.327878] systemd[1]: Mounted sys-fs-fuse-connections.mount.
[    3.329103] systemd[1]: Mounted sys-kernel-config.mount.
[    3.333386] systemd[1]: var-log.mount was skipped because no trigger condition checks were met.
[    3.351821] Asymmetric key parser 'pkcs8' registered
[    3.354738] systemd[1]: Finished systemd-modules-load.service.
[    3.359108] systemd[1]: Starting systemd-sysctl.service...
[    3.440635] systemd[1]: Finished systemd-sysctl.service.
[    3.468180] systemd[1]: Finished swap.service.
[    3.468528] systemd[1]: Reached target swap.target.
[    3.471842] systemd[1]: Mounting tmp.mount...
[    3.477509] systemd[1]: Mounted tmp.mount.
[    3.477863] systemd[1]: Reached target local-fs.target.
[    3.481225] systemd[1]: Starting machine-id.service...
[    3.508770] systemd[1]: Finished machine-id.service.
[    3.514167] systemd[1]: Starting systemd-journald.service...
[    3.519116] systemd[1]: Starting systemd-tmpfiles-setup-dev.service...
[    3.570027] systemd[1]: Finished systemd-tmpfiles-setup-dev.service.
[    3.599673] systemd[1]: Started systemd-journald.service.
[    3.645247] systemd-journald[327]: Received client request to flush runtime journal.
[    6.017974] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    6.050457] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    6.085200] sun50i-di 1420000.deinterlace: Adding to iommu group 0
[    6.098608] sun50i-di 1420000.deinterlace: Device registered as /dev/video1
[    6.141646] panfrost 1800000.gpu: clock rate = 432000000
[    6.141685] panfrost 1800000.gpu: bus_clock rate = 200000000
[    6.141995] panfrost 1800000.gpu: mali-t720 id 0x720 major 0x1 minor 0x1 status 0x0
[    6.142011] panfrost 1800000.gpu: features: 00000000,00000408, issues: 00000000,21054400
[    6.142019] panfrost 1800000.gpu: Features: L2:0x07110206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002821 AS:0xf JS:0x7
[    6.142026] panfrost 1800000.gpu: shader_present=0x3 l2_present=0x1
[    6.176279] [drm] Initialized panfrost 1.2.0 20180908 for 1800000.gpu on minor 1
[    6.264194] hantro-vpu 1c00000.video-codec-g2: Adding to iommu group 0
[    6.281927] hantro-vpu 1c00000.video-codec-g2: registered allwinner,sun50i-h6-vpu-g2-dec as /dev/video2
[    6.302265] sun50i-h6-pinctrl 300b000.pinctrl: supply vcc-pa not found, using dummy regulator
[    6.302707] dwmac-sun8i 5020000.ethernet: IRQ eth_wake_irq not found
[    6.302725] dwmac-sun8i 5020000.ethernet: IRQ eth_lpi not found
[    6.310031] dwmac-sun8i 5020000.ethernet: supply phy not found, using dummy regulator
[    6.310557] dwmac-sun8i 5020000.ethernet: supply phy-io not found, using dummy regulator
[    6.310767] dwmac-sun8i 5020000.ethernet: PTP uses main clock
[    6.310876] dwmac-sun8i 5020000.ethernet: Current syscon value is not the default 58000 (expect 50000)
[    6.314428] dwmac-sun8i 5020000.ethernet: No HW DMA feature register supported
[    6.314457] dwmac-sun8i 5020000.ethernet: RX Checksum Offload Engine supported
[    6.314461] dwmac-sun8i 5020000.ethernet: COE Type 2
[    6.314470] dwmac-sun8i 5020000.ethernet: TX Checksum insertion supported
[    6.314476] dwmac-sun8i 5020000.ethernet: Normal descriptors
[    6.314483] dwmac-sun8i 5020000.ethernet: Chain mode enabled
[    6.441322] dwmac-sun8i 5020000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[    6.511403] Bluetooth: Core ver 2.22
[    6.511573] NET: Registered PF_BLUETOOTH protocol family
[    6.511578] Bluetooth: HCI device and connection manager initialized
[    6.511608] Bluetooth: HCI socket layer initialized
[    6.511618] Bluetooth: L2CAP socket layer initialized
[    6.511641] Bluetooth: SCO socket layer initialized
[    6.516961] sun50i-h6-r-pinctrl 7022000.pinctrl: supply vcc-pl not found, using dummy regulator
[    6.517445] Registered IR keymap rc-tanix-tx5max
[    6.517612] rc rc0: sunxi-ir as /devices/platform/soc/7040000.ir/rc/rc0
[    6.528516] dwmac-sun8i 5020000.ethernet eth0: PHY [stmmac-0:01] driver [AC200 EPHY] (irq=POLL)
[    6.528581] dwmac-sun8i 5020000.ethernet eth0: No Safety Features support found
[    6.528599] dwmac-sun8i 5020000.ethernet eth0: No MAC Management Counters available
[    6.528613] dwmac-sun8i 5020000.ethernet eth0: PTP not supported by HW
[    6.529515] rc rc0: lirc_dev: driver sunxi-ir registered at minor = 0, raw IR receiver, no transmitter
[    6.537052] input: sunxi-ir as /devices/platform/soc/7040000.ir/rc/rc0/input3
[    6.542013] dwmac-sun8i 5020000.ethernet eth0: configuring for phy/rmii link mode
[    6.555460] sunxi-ir 7040000.ir: initialized sunXi IR driver
[    6.728519] systemd-journald[327]: Data hash table of /run/log/journal/4be1c5f3886356fcc51ea44b622afb4d/system.journal has a fill level at 75.3 (1542 of 2047 items, 524288 file size, 340 bytes per hash table item), suggesting rotation.
[    6.728558] systemd-journald[327]: /run/log/journal/4be1c5f3886356fcc51ea44b622afb4d/system.journal: Journal header limits reached or header out-of-date, rotating.
[    6.792225] rtw_8822cs mmc1:0001:1: WOW Firmware version 9.9.4, H2C version 15
[    6.793141] rtw_8822cs mmc1:0001:1: Firmware version 9.9.13, H2C version 15
[    6.847581] Bluetooth: HCI UART driver ver 2.3
[    6.847609] Bluetooth: HCI UART protocol H4 registered
[    6.847614] Bluetooth: HCI UART protocol BCSP registered
[    6.847713] Bluetooth: HCI UART protocol LL registered
[    6.847718] Bluetooth: HCI UART protocol ATH3K registered
[    6.847763] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    6.848043] Bluetooth: HCI UART protocol Intel registered
[    6.848221] Bluetooth: HCI UART protocol Broadcom registered
[    6.848275] Bluetooth: HCI UART protocol QCA registered
[    6.848284] Bluetooth: HCI UART protocol AG6XX registered
[    6.848328] Bluetooth: HCI UART protocol Marvell registered
[    7.162551] input: eventlircd as /devices/virtual/input/input4
[    7.625560] Bluetooth: hci0: RTL: examining hci_ver=08 hci_rev=000c lmp_ver=08 lmp_subver=8822
[    7.629672] Bluetooth: hci0: RTL: rom_version status=0 version=3
[    7.629705] Bluetooth: hci0: RTL: loading rtl_bt/rtl8822cs_fw.bin
[    7.642157] Bluetooth: hci0: RTL: loading rtl_bt/rtl8822cs_config.bin
[    7.667018] Bluetooth: hci0: RTL: cfg_sz 33, total sz 36529
[    7.785053] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    7.785082] Bluetooth: BNEP filters: protocol multicast
[    7.785104] Bluetooth: BNEP socket layer initialized
[    8.126377] Bluetooth: hci0: RTL: fw version 0xffb8abd6
[    8.179779] Bluetooth: MGMT ver 1.22
[   28.798216] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   28.903499] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   30.932397] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   31.038898] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   31.588253] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   31.694902] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   33.233869] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   33.840040] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   33.950967] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   34.293363] wlan0: authenticate with a6:91:b1:d6:be:8d
[   34.494885] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   36.586311] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   36.691590] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
[   38.731420] wlan0: send auth to a6:91:b1:d6:be:8d (try 1/3)
[   38.732140] wlan0: authenticated
[   38.734810] wlan0: associate with a6:91:b1:d6:be:8d (try 1/3)
[   38.744096] wlan0: RX AssocResp from a6:91:b1:d6:be:8d (capab=0x1011 status=0 aid=5)
[   38.800687] ------------[ cut here ]------------
[   38.800703] Voluntary context switch within RCU read-side critical section!
[   38.800715] WARNING: CPU: 3 PID: 49 at kernel/rcu/tree_plugin.h:318 rcu_note_context_switch+0x314/0x3ec
[   38.800740] Modules linked in: bnep rtw88_8822cs hci_uart rtw88_8822c btqca rtw88_sdio rtw88_core btrtl btbcm btintel crct10dif_ce mac80211 sunxi_cir bluetooth ecdh_generic libarc4 dwmac_sun8i ecc hantro_vpu v4l2_vp9 v4l2_h264 panfrost drm_shmem_helper gpu_sched sun50i_di cfg80211 rfkill pkcs8_key_parser fuse
[   38.800814] CPU: 3 PID: 49 Comm: kworker/u8:1 Not tainted 6.1.1 #1
[   38.800821] Hardware name: Tanix TX6 (DT)
[   38.800826] Workqueue: phy0 ieee80211_iface_work [mac80211]
[   38.800944] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   38.800950] pc : rcu_note_context_switch+0x314/0x3ec
[   38.800959] lr : rcu_note_context_switch+0x314/0x3ec
[   38.800965] sp : ffff8000098d3450
[   38.800968] x29: ffff8000098d3450 x28: ffff800000d71e90 x27: ffff00000f647400
[   38.800977] x26: 0000000000000000 x25: ffff8000098d36a8 x24: 0000000000000000
[   38.800986] x23: 0000000000000000 x22: ffff00000201d100 x21: ffff0000bf9ab100
[   38.800995] x20: ffff800009251e40 x19: ffff0000bf9abe40 x18: fffffffffffe7b30
[   38.801004] x17: 7a9deabfef448dbe x16: 0000000000004664 x15: fffffffffffe7b78
[   38.801013] x14: ffff800009400d38 x13: ffff800009400d90 x12: 0000000000000579
[   38.801022] x11: 00000000000001d3 x10: ffff80000945b958 x9 : ffff800009400d90
[   38.801031] x8 : 00000000ffffefff x7 : ffff800009458d90 x6 : 00000000000001d3
[   38.801039] x5 : ffff0000bf9a48a8 x4 : 0000000000000000 x3 : 0000000000000027
[   38.801048] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff00000201d100
[   38.801057] Call trace:
[   38.801060]  rcu_note_context_switch+0x314/0x3ec
[   38.801068]  __schedule+0xa4/0x6b0
[   38.801075]  schedule+0x58/0xc0
[   38.801081]  schedule_timeout+0xb8/0xec
[   38.801088]  wait_for_completion+0xb0/0x150
[   38.801093]  mmc_wait_for_req_done+0x68/0x9c
[   38.801103]  mmc_wait_for_req+0xa8/0xf4
[   38.801109]  mmc_wait_for_cmd+0x60/0x9c
[   38.801116]  mmc_io_rw_direct+0x98/0x12c
[   38.801124]  sdio_writeb+0x30/0x60
[   38.801131]  rtw_sdio_write8+0x7c/0x120 [rtw88_sdio]
[   38.801144]  rtw_bf_init_bfer_entry_mu+0x3c/0xc0 [rtw88_core]
[   38.801183]  rtw_bf_enable_bfee_mu+0x78/0x12c [rtw88_core]
[   38.801213]  rtw8822c_bf_config_bfee+0x44/0x10c [rtw88_8822c]
[   38.801229]  rtw_bf_assoc+0xec/0x210 [rtw88_core]
[   38.801258]  rtw_ops_bss_info_changed+0x27c/0x280 [rtw88_core]
[   38.801287]  ieee80211_bss_info_change_notify+0x100/0x184 [mac80211]
[   38.801363]  ieee80211_rx_mgmt_assoc_resp+0x16f4/0x1794 [mac80211]
[   38.801438]  ieee80211_sta_rx_queued_mgmt+0x250/0x9b0 [mac80211]
[   38.801513]  ieee80211_iface_work+0x2b4/0x3d0 [mac80211]
[   38.801589]  process_one_work+0x1cc/0x324
[   38.801597]  worker_thread+0x68/0x41c
[   38.801603]  kthread+0x104/0x110
[   38.801610]  ret_from_fork+0x10/0x20
[   38.801617] ---[ end trace 0000000000000000 ]---
[   38.820596] wlan0: associated
[   38.899464] wlan0: Limiting TX power to 30 (30 - 0) dBm as advertised by a6:91:b1:d6:be:8d
[   39.375608] dw_hdmi_cec_hardirq: stat=11 LOW_DRIVE
tx6:~ # 

@heitbaum
Copy link
Contributor Author

[   40.988726] ------------[ cut here ]------------
[   40.988742] Voluntary context switch within RCU read-side critical section!
[   40.988755] WARNING: CPU: 2 PID: 9 at kernel/rcu/tree_plugin.h:318 rcu_note_context_switch+0x314/0x3ec
[   40.988780] Modules linked in: bnep rtw88_8822cs rtw88_8822c rtw88_sdio crct10dif_ce hci_uart btqca btrtl btbcm rtw88_core btintel bluetooth mac80211 ecdh_generic sunxi_cir libarc4 ecc dwmac_sun8i panfrost drm_shmem_helper sun50i_di hantro_vpu v4l2_vp9 v4l2_h264 gpu_sched cfg80211 rfkill pkcs8_key_parser fuse
[   40.988854] CPU: 2 PID: 9 Comm: kworker/u8:0 Not tainted 6.1.1 #1
[   40.988861] Hardware name: Tanix TX6 (DT)
[   40.988866] Workqueue: phy0 rtw_watch_dog_work [rtw88_core]
[   40.988910] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   40.988917] pc : rcu_note_context_switch+0x314/0x3ec
[   40.988924] lr : rcu_note_context_switch+0x314/0x3ec
[   40.988931] sp : ffff8000095fb730
[   40.988933] x29: ffff8000095fb730 x28: 0000000000000002 x27: 0000000000000001
[   40.988943] x26: 0000000000000001 x25: ffff8000095fba30 x24: 0000000000000000
[   40.988951] x23: 0000000000000000 x22: ffff000001916c00 x21: ffff0000bf998100
[   40.988960] x20: ffff800009251e40 x19: ffff0000bf998e40 x18: fffffffffffe7bb0
[   40.988970] x17: 0000000000000000 x16: 0000000000000000 x15: fffffffffffe7bf8
[   40.988978] x14: ffff800009400d38 x13: ffff800009400d90 x12: 000000000000057f
[   40.988987] x11: 00000000000001d5 x10: ffff80000945b988 x9 : ffff800009400d90
[   40.988996] x8 : 00000000ffffefff x7 : ffff800009458d90 x6 : 00000000000001d5
[   40.989005] x5 : ffff0000bf9918a8 x4 : 0000000000000000 x3 : 0000000000000027
[   40.989013] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000001916c00
[   40.989022] Call trace:
[   40.989026]  rcu_note_context_switch+0x314/0x3ec
[   40.989033]  __schedule+0xa4/0x6b0
[   40.989041]  schedule+0x58/0xc0
[   40.989046]  schedule_timeout+0xb8/0xec
[   40.989053]  wait_for_completion+0xb0/0x150
[   40.989059]  mmc_wait_for_req_done+0x68/0x9c
[   40.989068]  mmc_wait_for_req+0xa8/0xf4
[   40.989075]  mmc_io_rw_extended+0x1d0/0x2c0
[   40.989083]  sdio_io_rw_ext_helper+0x18c/0x230
[   40.989091]  sdio_writel+0x30/0x44
[   40.989097]  rtw_sdio_writel+0xcc/0xdc [rtw88_sdio]
[   40.989109]  rtw_sdio_read_indirect32+0x38/0xc0 [rtw88_sdio]
[   40.989119]  rtw_sdio_read32+0xf8/0x190 [rtw88_sdio]
[   40.989129]  rtw_bf_cfg_csi_rate+0x34/0x110 [rtw88_core]
[   40.989159]  rtw_vif_watch_dog_iter+0xa4/0xe4 [rtw88_core]
[   40.989188]  __iterate_interfaces+0xbc/0x12c [mac80211]
[   40.989303]  ieee80211_iterate_active_interfaces_atomic+0x38/0x50 [mac80211]
[   40.989385]  rtw_watch_dog_work+0x1c8/0x260 [rtw88_core]
[   40.989439]  process_one_work+0x1cc/0x324
[   40.989462]  worker_thread+0x68/0x41c
[   40.989483]  kthread+0x104/0x110
[   40.989503]  ret_from_fork+0x10/0x20
[   40.989524] ---[ end trace 0000000000000000 ]---

fixes:

[   38.800687] ------------[ cut here ]------------
[   38.800703] Voluntary context switch within RCU read-side critical section!
[   38.800715] WARNING: CPU: 3 PID: 49 at kernel/rcu/tree_plugin.h:318 rcu_note_context_switch+0x314/0x3ec
[   38.800740] Modules linked in: bnep rtw88_8822cs hci_uart rtw88_8822c btqca rtw88_sdio rtw88_core btrtl btbcm btintel crct10dif_ce mac80211 sunxi_cir bluetooth ecdh_generic libarc4 dwmac_sun8i ecc hantro_vpu v4l2_vp9 v4l2_h264 panfrost drm_shmem_helper gpu_sched sun50i_di cfg80211 rfkill pkcs8_key_parser fuse
[   38.800814] CPU: 3 PID: 49 Comm: kworker/u8:1 Not tainted 6.1.1 #1
[   38.800821] Hardware name: Tanix TX6 (DT)
[   38.800826] Workqueue: phy0 ieee80211_iface_work [mac80211]
[   38.800944] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   38.800950] pc : rcu_note_context_switch+0x314/0x3ec
[   38.800959] lr : rcu_note_context_switch+0x314/0x3ec
[   38.800965] sp : ffff8000098d3450
[   38.800968] x29: ffff8000098d3450 x28: ffff800000d71e90 x27: ffff00000f647400
[   38.800977] x26: 0000000000000000 x25: ffff8000098d36a8 x24: 0000000000000000
[   38.800986] x23: 0000000000000000 x22: ffff00000201d100 x21: ffff0000bf9ab100
[   38.800995] x20: ffff800009251e40 x19: ffff0000bf9abe40 x18: fffffffffffe7b30
[   38.801004] x17: 7a9deabfef448dbe x16: 0000000000004664 x15: fffffffffffe7b78
[   38.801013] x14: ffff800009400d38 x13: ffff800009400d90 x12: 0000000000000579
[   38.801022] x11: 00000000000001d3 x10: ffff80000945b958 x9 : ffff800009400d90
[   38.801031] x8 : 00000000ffffefff x7 : ffff800009458d90 x6 : 00000000000001d3
[   38.801039] x5 : ffff0000bf9a48a8 x4 : 0000000000000000 x3 : 0000000000000027
[   38.801048] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff00000201d100
[   38.801057] Call trace:
[   38.801060]  rcu_note_context_switch+0x314/0x3ec
[   38.801068]  __schedule+0xa4/0x6b0
[   38.801075]  schedule+0x58/0xc0
[   38.801081]  schedule_timeout+0xb8/0xec
[   38.801088]  wait_for_completion+0xb0/0x150
[   38.801093]  mmc_wait_for_req_done+0x68/0x9c
[   38.801103]  mmc_wait_for_req+0xa8/0xf4
[   38.801109]  mmc_wait_for_cmd+0x60/0x9c
[   38.801116]  mmc_io_rw_direct+0x98/0x12c
[   38.801124]  sdio_writeb+0x30/0x60
[   38.801131]  rtw_sdio_write8+0x7c/0x120 [rtw88_sdio]
[   38.801144]  rtw_bf_init_bfer_entry_mu+0x3c/0xc0 [rtw88_core]
[   38.801183]  rtw_bf_enable_bfee_mu+0x78/0x12c [rtw88_core]
[   38.801213]  rtw8822c_bf_config_bfee+0x44/0x10c [rtw88_8822c]
[   38.801229]  rtw_bf_assoc+0xec/0x210 [rtw88_core]
[   38.801258]  rtw_ops_bss_info_changed+0x27c/0x280 [rtw88_core]
[   38.801287]  ieee80211_bss_info_change_notify+0x100/0x184 [mac80211]
[   38.801363]  ieee80211_rx_mgmt_assoc_resp+0x16f4/0x1794 [mac80211]
[   38.801438]  ieee80211_sta_rx_queued_mgmt+0x250/0x9b0 [mac80211]
[   38.801513]  ieee80211_iface_work+0x2b4/0x3d0 [mac80211]
[   38.801589]  process_one_work+0x1cc/0x324
[   38.801597]  worker_thread+0x68/0x41c
[   38.801603]  kthread+0x104/0x110
[   38.801610]  ret_from_fork+0x10/0x20
[   38.801617] ---[ end trace 0000000000000000 ]---
linux-122-rtw88-rfc-v1.patch from:
 https://lore.kernel.org/linux-wireless/20221227233020.284266-1-martin.blumenstingl@googlemail.com/t.mbox.gz

pre-req is:
- linux: rtw88: backport USB patches from wireless-next 6.2
@heitbaum
Copy link
Contributor Author

heitbaum commented Jan 9, 2023

Updated with V3 of rtw88 locking fixes. Tested on both 8822bs and 8822cs. https://lore.kernel.org/linux-wireless/20230108211324.442823-1-martin.blumenstingl@googlemail.com/

@heitbaum heitbaum marked this pull request as ready for review January 9, 2023 09:44
@jernejsk jernejsk merged commit a27e6b0 into LibreELEC:master Jan 9, 2023
@heitbaum heitbaum deleted the rtw88 branch January 9, 2023 21:25
phhusson pushed a commit to phhusson/linux that referenced this pull request Feb 14, 2023
This series consists of three patches which are fixing existing
behavior (meaning: it either affects PCIe or USB or both) in the rtw88
driver.
We previously had discussed patches for these locking issues while
working on SDIO support, but the problem never ocurred while testing
USB cards. It turns out that these are still needed and I think that
they also fix the same problems for USB users (it's not clear how often
it happens there though) - and possibly even PCIe card users.

The issue fixed by the second and third patches have been spotted by a
user who tested rtw88 SDIO support. Everything is working fine for him
but there are warnings [1] and [2] in the kernel log stating "Voluntary
context switch within RCU read-side critical section!".

The solution in the third and fourth patch was actually suggested by
Ping-Ke in [3]. Thanks again!

These fixes are indepdent of my other series adding SDIO support to the
rtw88 driver, meaning they can be added to the wireless driver tree on
top of Linux 6.2-rc1 or linux-next.

Changes since v1 at [4]:
- Keep the u8 bitfields in patch 1 but split the res2 field into res2_1
  and res2_2 as suggested by Ping-Ke
- Added Ping-Ke's reviewed-by to patches 2-4 - thank you!
- Added a paragraph in the cover-letter to avoid confusion whether
  these patches depend on the rtw88 SDIO support series

Changes since v2 at [5]:
- Added Ping-Ke's Reviewed-by and Sascha's Tested-by (thanks to both of
  you!)
- Dropped patch 1/4 "rtw88: Add packed attribute to the eFuse structs"
  This requires more discussion. I'll send a separate patch for this.
- Updated cover letter title so it's clear that this is independent of
  SDIO support code

[0] https://lore.kernel.org/linux-wireless/695c976e02ed44a2b2345a3ceb226fc4@realtek.com/
[1] LibreELEC/LibreELEC.tv#7301 (comment)
[2] LibreELEC/LibreELEC.tv#7301 (comment)
[3] https://lore.kernel.org/lkml/e0aa1ba4336ab130712e1fcb425e6fd0adca4145.camel@realtek.com/
[4] https://lore.kernel.org/linux-wireless/20221228133547.633797-1-martin.blumenstingl@googlemail.com/
[5] https://lore.kernel.org/linux-wireless/20221229124845.1155429-1-martin.blumenstingl@googlemail.com/

Martin Blumenstingl (3):
  wifi: rtw88: Move register access from rtw_bf_assoc() outside the RCU
  wifi: rtw88: Use rtw_iterate_vifs() for rtw_vif_watch_dog_iter()
  wifi: rtw88: Use non-atomic sta iterator in rtw_ra_mask_info_update()

 drivers/net/wireless/realtek/rtw88/bf.c       | 13 +++++++------
 drivers/net/wireless/realtek/rtw88/mac80211.c |  4 +++-
 drivers/net/wireless/realtek/rtw88/main.c     |  6 ++++--
 3 files changed, 14 insertions(+), 9 deletions(-)

--
2.39.0

From:   Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To:     linux-wireless@vger.kernel.org
Cc:     tony0620emma@gmail.com, kvalo@kernel.org, pkshih@realtek.com,
        s.hauer@pengutronix.de, netdev@vger.kernel.org,
        linux-kernel@vger.kernel.org,
        Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Subject: [PATCH v3 1/3] wifi: rtw88: Move register access from rtw_bf_assoc() outside the RCU
Date:   Sun,  8 Jan 2023 22:13:22 +0100
Message-Id: <20230108211324.442823-2-martin.blumenstingl@googlemail.com>
X-Mailer: git-send-email 2.39.0
In-Reply-To: <20230108211324.442823-1-martin.blumenstingl@googlemail.com>
References: <20230108211324.442823-1-martin.blumenstingl@googlemail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Precedence: bulk
List-ID: <linux-wireless.vger.kernel.org>
X-Mailing-List: linux-wireless@vger.kernel.org

USB and (upcoming) SDIO support may sleep in the read/write handlers.
Shrink the RCU critical section so it only cover the call to
ieee80211_find_sta() and finding the ic_vht_cap/vht_cap based on the
found station. This moves the chip's BFEE configuration outside the
rcu_read_lock section and thus prevent "scheduling while atomic" or
"Voluntary context switch within RCU read-side critical section!"
warnings when accessing the registers using an SDIO card (which is
where this issue has been spotted in the real world - but it also
affects USB cards).

Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Tested-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
dsx724 pushed a commit to libre-computer-project/libretech-linux that referenced this pull request Mar 29, 2023
This series consists of three patches which are fixing existing
behavior (meaning: it either affects PCIe or USB or both) in the rtw88
driver.
We previously had discussed patches for these locking issues while
working on SDIO support, but the problem never ocurred while testing
USB cards. It turns out that these are still needed and I think that
they also fix the same problems for USB users (it's not clear how often
it happens there though) - and possibly even PCIe card users.

The issue fixed by the second and third patches have been spotted by a
user who tested rtw88 SDIO support. Everything is working fine for him
but there are warnings [1] and [2] in the kernel log stating "Voluntary
context switch within RCU read-side critical section!".

The solution in the third and fourth patch was actually suggested by
Ping-Ke in [3]. Thanks again!

These fixes are indepdent of my other series adding SDIO support to the
rtw88 driver, meaning they can be added to the wireless driver tree on
top of Linux 6.2-rc1 or linux-next.

Changes since v1 at [4]:
- Keep the u8 bitfields in patch 1 but split the res2 field into res2_1
  and res2_2 as suggested by Ping-Ke
- Added Ping-Ke's reviewed-by to patches 2-4 - thank you!
- Added a paragraph in the cover-letter to avoid confusion whether
  these patches depend on the rtw88 SDIO support series

Changes since v2 at [5]:
- Added Ping-Ke's Reviewed-by and Sascha's Tested-by (thanks to both of
  you!)
- Dropped patch 1/4 "rtw88: Add packed attribute to the eFuse structs"
  This requires more discussion. I'll send a separate patch for this.
- Updated cover letter title so it's clear that this is independent of
  SDIO support code

[0] https://lore.kernel.org/linux-wireless/695c976e02ed44a2b2345a3ceb226fc4@realtek.com/
[1] LibreELEC/LibreELEC.tv#7301 (comment)
[2] LibreELEC/LibreELEC.tv#7301 (comment)
[3] https://lore.kernel.org/lkml/e0aa1ba4336ab130712e1fcb425e6fd0adca4145.camel@realtek.com/
[4] https://lore.kernel.org/linux-wireless/20221228133547.633797-1-martin.blumenstingl@googlemail.com/
[5] https://lore.kernel.org/linux-wireless/20221229124845.1155429-1-martin.blumenstingl@googlemail.com/

Martin Blumenstingl (3):
  wifi: rtw88: Move register access from rtw_bf_assoc() outside the RCU
  wifi: rtw88: Use rtw_iterate_vifs() for rtw_vif_watch_dog_iter()
  wifi: rtw88: Use non-atomic sta iterator in rtw_ra_mask_info_update()

 drivers/net/wireless/realtek/rtw88/bf.c       | 13 +++++++------
 drivers/net/wireless/realtek/rtw88/mac80211.c |  4 +++-
 drivers/net/wireless/realtek/rtw88/main.c     |  6 ++++--
 3 files changed, 14 insertions(+), 9 deletions(-)

--
2.39.0

From:   Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To:     linux-wireless@vger.kernel.org
Cc:     tony0620emma@gmail.com, kvalo@kernel.org, pkshih@realtek.com,
        s.hauer@pengutronix.de, netdev@vger.kernel.org,
        linux-kernel@vger.kernel.org,
        Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Subject: [PATCH v3 1/3] wifi: rtw88: Move register access from rtw_bf_assoc() outside the RCU
Date:   Sun,  8 Jan 2023 22:13:22 +0100
Message-Id: <20230108211324.442823-2-martin.blumenstingl@googlemail.com>
X-Mailer: git-send-email 2.39.0
In-Reply-To: <20230108211324.442823-1-martin.blumenstingl@googlemail.com>
References: <20230108211324.442823-1-martin.blumenstingl@googlemail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Precedence: bulk
List-ID: <linux-wireless.vger.kernel.org>
X-Mailing-List: linux-wireless@vger.kernel.org

USB and (upcoming) SDIO support may sleep in the read/write handlers.
Shrink the RCU critical section so it only cover the call to
ieee80211_find_sta() and finding the ic_vht_cap/vht_cap based on the
found station. This moves the chip's BFEE configuration outside the
rcu_read_lock section and thus prevent "scheduling while atomic" or
"Voluntary context switch within RCU read-side critical section!"
warnings when accessing the registers using an SDIO card (which is
where this issue has been spotted in the real world - but it also
affects USB cards).

Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Tested-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
dsx724 pushed a commit to libre-computer-project/libretech-linux that referenced this pull request Apr 16, 2023
This series consists of three patches which are fixing existing
behavior (meaning: it either affects PCIe or USB or both) in the rtw88
driver.
We previously had discussed patches for these locking issues while
working on SDIO support, but the problem never ocurred while testing
USB cards. It turns out that these are still needed and I think that
they also fix the same problems for USB users (it's not clear how often
it happens there though) - and possibly even PCIe card users.

The issue fixed by the second and third patches have been spotted by a
user who tested rtw88 SDIO support. Everything is working fine for him
but there are warnings [1] and [2] in the kernel log stating "Voluntary
context switch within RCU read-side critical section!".

The solution in the third and fourth patch was actually suggested by
Ping-Ke in [3]. Thanks again!

These fixes are indepdent of my other series adding SDIO support to the
rtw88 driver, meaning they can be added to the wireless driver tree on
top of Linux 6.2-rc1 or linux-next.

Changes since v1 at [4]:
- Keep the u8 bitfields in patch 1 but split the res2 field into res2_1
  and res2_2 as suggested by Ping-Ke
- Added Ping-Ke's reviewed-by to patches 2-4 - thank you!
- Added a paragraph in the cover-letter to avoid confusion whether
  these patches depend on the rtw88 SDIO support series

Changes since v2 at [5]:
- Added Ping-Ke's Reviewed-by and Sascha's Tested-by (thanks to both of
  you!)
- Dropped patch 1/4 "rtw88: Add packed attribute to the eFuse structs"
  This requires more discussion. I'll send a separate patch for this.
- Updated cover letter title so it's clear that this is independent of
  SDIO support code

[0] https://lore.kernel.org/linux-wireless/695c976e02ed44a2b2345a3ceb226fc4@realtek.com/
[1] LibreELEC/LibreELEC.tv#7301 (comment)
[2] LibreELEC/LibreELEC.tv#7301 (comment)
[3] https://lore.kernel.org/lkml/e0aa1ba4336ab130712e1fcb425e6fd0adca4145.camel@realtek.com/
[4] https://lore.kernel.org/linux-wireless/20221228133547.633797-1-martin.blumenstingl@googlemail.com/
[5] https://lore.kernel.org/linux-wireless/20221229124845.1155429-1-martin.blumenstingl@googlemail.com/

Martin Blumenstingl (3):
  wifi: rtw88: Move register access from rtw_bf_assoc() outside the RCU
  wifi: rtw88: Use rtw_iterate_vifs() for rtw_vif_watch_dog_iter()
  wifi: rtw88: Use non-atomic sta iterator in rtw_ra_mask_info_update()

 drivers/net/wireless/realtek/rtw88/bf.c       | 13 +++++++------
 drivers/net/wireless/realtek/rtw88/mac80211.c |  4 +++-
 drivers/net/wireless/realtek/rtw88/main.c     |  6 ++++--
 3 files changed, 14 insertions(+), 9 deletions(-)

--
2.39.0

From:   Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To:     linux-wireless@vger.kernel.org
Cc:     tony0620emma@gmail.com, kvalo@kernel.org, pkshih@realtek.com,
        s.hauer@pengutronix.de, netdev@vger.kernel.org,
        linux-kernel@vger.kernel.org,
        Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Subject: [PATCH v3 1/3] wifi: rtw88: Move register access from rtw_bf_assoc() outside the RCU
Date:   Sun,  8 Jan 2023 22:13:22 +0100
Message-Id: <20230108211324.442823-2-martin.blumenstingl@googlemail.com>
X-Mailer: git-send-email 2.39.0
In-Reply-To: <20230108211324.442823-1-martin.blumenstingl@googlemail.com>
References: <20230108211324.442823-1-martin.blumenstingl@googlemail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Precedence: bulk
List-ID: <linux-wireless.vger.kernel.org>
X-Mailing-List: linux-wireless@vger.kernel.org

USB and (upcoming) SDIO support may sleep in the read/write handlers.
Shrink the RCU critical section so it only cover the call to
ieee80211_find_sta() and finding the ic_vht_cap/vht_cap based on the
found station. This moves the chip's BFEE configuration outside the
rcu_read_lock section and thus prevent "scheduling while atomic" or
"Voluntary context switch within RCU read-side critical section!"
warnings when accessing the registers using an SDIO card (which is
where this issue has been spotted in the real world - but it also
affects USB cards).

Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Tested-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
dsx724 pushed a commit to libre-computer-project/libretech-linux that referenced this pull request May 7, 2023
This series consists of three patches which are fixing existing
behavior (meaning: it either affects PCIe or USB or both) in the rtw88
driver.
We previously had discussed patches for these locking issues while
working on SDIO support, but the problem never ocurred while testing
USB cards. It turns out that these are still needed and I think that
they also fix the same problems for USB users (it's not clear how often
it happens there though) - and possibly even PCIe card users.

The issue fixed by the second and third patches have been spotted by a
user who tested rtw88 SDIO support. Everything is working fine for him
but there are warnings [1] and [2] in the kernel log stating "Voluntary
context switch within RCU read-side critical section!".

The solution in the third and fourth patch was actually suggested by
Ping-Ke in [3]. Thanks again!

These fixes are indepdent of my other series adding SDIO support to the
rtw88 driver, meaning they can be added to the wireless driver tree on
top of Linux 6.2-rc1 or linux-next.

Changes since v1 at [4]:
- Keep the u8 bitfields in patch 1 but split the res2 field into res2_1
  and res2_2 as suggested by Ping-Ke
- Added Ping-Ke's reviewed-by to patches 2-4 - thank you!
- Added a paragraph in the cover-letter to avoid confusion whether
  these patches depend on the rtw88 SDIO support series

Changes since v2 at [5]:
- Added Ping-Ke's Reviewed-by and Sascha's Tested-by (thanks to both of
  you!)
- Dropped patch 1/4 "rtw88: Add packed attribute to the eFuse structs"
  This requires more discussion. I'll send a separate patch for this.
- Updated cover letter title so it's clear that this is independent of
  SDIO support code

[0] https://lore.kernel.org/linux-wireless/695c976e02ed44a2b2345a3ceb226fc4@realtek.com/
[1] LibreELEC/LibreELEC.tv#7301 (comment)
[2] LibreELEC/LibreELEC.tv#7301 (comment)
[3] https://lore.kernel.org/lkml/e0aa1ba4336ab130712e1fcb425e6fd0adca4145.camel@realtek.com/
[4] https://lore.kernel.org/linux-wireless/20221228133547.633797-1-martin.blumenstingl@googlemail.com/
[5] https://lore.kernel.org/linux-wireless/20221229124845.1155429-1-martin.blumenstingl@googlemail.com/

Martin Blumenstingl (3):
  wifi: rtw88: Move register access from rtw_bf_assoc() outside the RCU
  wifi: rtw88: Use rtw_iterate_vifs() for rtw_vif_watch_dog_iter()
  wifi: rtw88: Use non-atomic sta iterator in rtw_ra_mask_info_update()

 drivers/net/wireless/realtek/rtw88/bf.c       | 13 +++++++------
 drivers/net/wireless/realtek/rtw88/mac80211.c |  4 +++-
 drivers/net/wireless/realtek/rtw88/main.c     |  6 ++++--
 3 files changed, 14 insertions(+), 9 deletions(-)

--
2.39.0

From:   Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To:     linux-wireless@vger.kernel.org
Cc:     tony0620emma@gmail.com, kvalo@kernel.org, pkshih@realtek.com,
        s.hauer@pengutronix.de, netdev@vger.kernel.org,
        linux-kernel@vger.kernel.org,
        Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Subject: [PATCH v3 1/3] wifi: rtw88: Move register access from rtw_bf_assoc() outside the RCU
Date:   Sun,  8 Jan 2023 22:13:22 +0100
Message-Id: <20230108211324.442823-2-martin.blumenstingl@googlemail.com>
X-Mailer: git-send-email 2.39.0
In-Reply-To: <20230108211324.442823-1-martin.blumenstingl@googlemail.com>
References: <20230108211324.442823-1-martin.blumenstingl@googlemail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Precedence: bulk
List-ID: <linux-wireless.vger.kernel.org>
X-Mailing-List: linux-wireless@vger.kernel.org

USB and (upcoming) SDIO support may sleep in the read/write handlers.
Shrink the RCU critical section so it only cover the call to
ieee80211_find_sta() and finding the ic_vht_cap/vht_cap based on the
found station. This moves the chip's BFEE configuration outside the
rcu_read_lock section and thus prevent "scheduling while atomic" or
"Voluntary context switch within RCU read-side critical section!"
warnings when accessing the registers using an SDIO card (which is
where this issue has been spotted in the real world - but it also
affects USB cards).

Reviewed-by: Ping-Ke Shih <pkshih@realtek.com>
Tested-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants