Openwrt Version: trunk r16840 (2021-05-29)
uname -a: Linux SecureOffice-aarch64 5.10.41 #0 SMP PREEMPT Sat May 29 12:47:07 2021 aarch64 GNU/Linux
I know I am far beyond bleeding edge both in terms of kernel, arch and wifi device. I Have it working for kernel 5.4, but need additional H/W provided with kernel-5.10
Using backports-5.10.34-1
What I am seeing:
[ 23.099353] Loading modules backported from Linux version v5.10.34-0-g0aa66717f684
[ 23.102076] Backport generated by backports.git v5.10.34-1-0-g7b5533e1
[ 23.207362] ath10k_sdio mmc0:0001:1: qca9377 hw1.1 sdio target 0x05020001 chip_id 0x00000000 sub 0000:0000
[ 23.212551] ath10k_sdio mmc0:0001:1: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[ 23.221061] ath10k_sdio mmc0:0001:1: firmware ver WLAN.TF.1.1.1-00061-QCATFSWPZ-1 api 5 features ignore-otp crc32 7746e551
This is normal: [ 23.376822] ath10k_sdio mmc0:0001:1: failed to fetch board data for bus=sdio,vendor=0271,device=0701,subsystem-vendor=0000,subsystem-device=0000 from ath10k/QCA9377/hw1.0/board-2.bin
[ 23.388461] ath10k_sdio mmc0:0001:1: board_file api 1 bmi_id N/A crc32 544289f7
[ 24.486212] ------------[ cut here ]------------
[ 24.486478] kernel BUG at kernel/time/timer.c:965!
[ 24.490143] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
Discussion: suspect this is some sorta startup race condition:
+995 linux-5.4.50/kernel/time/timer.c "BUG_ON(!timer->function);" not
initialized at call time, which may be a consequence of
"flush_workqueue(ar->workqueue); " call in
backports-5.10.34-1/drivers/net/wireless/ath/ath10k/core.c used for
openwrt compatability. (init phy's first, differs from mainline linux)
If I patch out the above "flush_workqueue" call, execution proceeds to other DMA alloc related sigsegv's
My suspicion is this is a startup issue, when the ath10k_sdio module is loaded. Playing around with the filename order in /etc/modules.d has no effect, since the module is loaded as part of auto H/W detect.
I have a few questions that may help resolve this:
- How can I delay module load to after kernel resources (such as timer->function) init is complete?
- Can I add dependencies and / or init calls to insure the kernel is ready for this module?
If someone with requisite interest skills is available to work with me on this, I can
provide SSH access and or ship hardware (Tanix TX92)
Thanks + Regards;
Bill