We have an embedded device that utilizes the TI WL1837MOD module, and in order to resolve some performance issues we were facing with 802.11s mesh, we recently switched drivers & wpa_supplicant versions from mainline releases to the TI forks. Our current versions in use are as follows:
- Kernel: v3.10 (mainline)
- wl18xx driver: TI kernel driver - R8.7_SP3
- wl18xx firmware: 8.9.0.0.79
- wpa_supplicant/hostapd: 2.6 (TI fork - R8.7_SP3)
We saw the improved mesh speeds that we were looking for, but we've also been experiencing occasional driver crashes. They appear to occur randomly. For example, over the course of 14 hours of uptime, our device saw 4 different crashes at 8, 8 1/2, 9, and 13 1/2 hours of uptime.
A snippet from the crash can be seen below:
[48635.774871] wlcore: Scan completed due to error.
[48635.779535] ------------[ cut here ]------------
[48635.784245] WARNING: at /home/kollisc/ssp-linux/lib_oss/linux-backports-a/drivers/net/wireless/ti/wlcore/main.c:807 wl1271_op_cancel_hw_scan+0x83c/0x840 [wlcore]()
[48635.798894] Modules linked in: ieee1609dot3(PO) ieee1609dot4(PO) ieee1609gnl(PO) cw_llc(O) cw_os(O) cw_pps(O) cryptodev(O) wl18xx(O) wlcore(O) mac80211(O) cfg80211(O) wlcore_sdio(O) compat(O)
[48635.816182] CPU: 0 PID: 1893 Comm: kworker/u2:0 Tainted: P W O 3.10.108-ltsi #2
[48635.824265] Workqueue: phy0 wl1271_scan_complete_work [wlcore]
[48635.830165] [<c0012874>] (unwind_backtrace+0x0/0xf4) from [<c0011134>] (show_stack+0x10/0x14)
[48635.838737] [<c0011134>] (show_stack+0x10/0x14) from [<c002a5ec>] (warn_slowpath_common+0x54/0x68)
[48635.847772] [<c002a5ec>] (warn_slowpath_common+0x54/0x68) from [<c002a69c>] (warn_slowpath_null+0x1c/0x24)
[48635.857507] [<c002a69c>] (warn_slowpath_null+0x1c/0x24) from [<bf0c66d4>] (wl1271_op_cancel_hw_scan+0x83c/0x840 [wlcore])
[48635.868580] [<bf0c66d4>] (wl1271_op_cancel_hw_scan+0x83c/0x840 [wlcore]) from [<bf0d99c8>] (wl1271_scan_complete_work+0x100/0x104 [wlcore])
[48635.881173] [<bf0d99c8>] (wl1271_scan_complete_work+0x100/0x104 [wlcore]) from [<c0041094>] (process_one_work+0xf4/0x344)
[48635.892178] [<c0041094>] (process_one_work+0xf4/0x344) from [<c004141c>] (worker_thread+0x138/0x3d4)
[48635.901352] [<c004141c>] (worker_thread+0x138/0x3d4) from [<c0046cf0>] (kthread+0xb4/0xb8)
[48635.909657] [<c0046cf0>] (kthread+0xb4/0xb8) from [<c000dfa0>] (ret_from_fork+0x14/0x34)
[48635.917771] ---[ end trace b9d5c2d586feab90 ]---
[48635.954584] wlcore: Hardware recovery in progress. FW ver: Rev 8.9.0.0.79
[48635.975226] wlcore: pc: 0x0, hint_sts: 0x00000000 count: 4
[48635.981401] wlcore: down
[48635.989523] wlcore: down
[48635.995332] ieee80211 phy0: Hardware restart was requested
[48636.489759] wlcore: PHY firmware version: Rev 8.2.0.0.242
[48636.680608] wlcore: firmware booted (Rev 8.9.0.0.79)
[48636.709952] wlcore: Association completed.
[48636.742602] wlan0: deauthenticated from 08:60:6e:bb:5b:40 (Reason: 7=CLASS3_FRAME_FROM_NONASSOC_STA)
[48636.880554] cfg80211: World regulatory domain updated:
[48636.885718] cfg80211: DFS Master region: unset
[48636.890115] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[48636.899895] cfg80211: (2402000 KHz - 2482000 KHz @ 20000 KHz), (N/A, 600 mBm), (N/A)
[48637.277447] cfg80211: Regulatory domain changed to country: CA
[48637.283325] cfg80211: DFS Master region: FCC
[48637.287546] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[48637.297330] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 3000 mBm), (N/A)
[48637.305352] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (N/A, 1700 mBm), (N/A)
[48637.313410] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz), (N/A, 2400 mBm), (0 s)
[48637.321444] cfg80211: (5490000 KHz - 5730000 KHz @ 80000 KHz), (N/A, 2400 mBm), (0 s)
[48637.329531] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 3000 mBm), (N/A)
[48643.669927] wlcore: down
Any ideas as to why we're seeing this crash? Please let me know what information I can provide to help diagnose the issue.