WARNING: at net/wireless/ti/wlcore/io.h:52 wlcore_set_partition - wl12xx_set_power_on

From: Naresh Kamboju
Date: Mon Aug 10 2020 - 08:08:08 EST


While running kselftests firmware test cases on arm64 hikey the
following kernel warning noticed after rcu_preempt detected.

metadata:
git branch: master
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git commit: f80535b9aa10b0bbed0fb727247c03e20580db1c
git describe: next-20200810
kernel-config:
http://snapshots.linaro.org/openembedded/lkft/lkft/sumo/hikey/lkft/linux-next/836/config

Test output:
----------------
# ./fw_filesystem.sh filesystem loading works
filesystem: loading_works #
# ./fw_filesystem.sh async filesystem loading works
async: filesystem_loading #
# ./fw_filesystem.sh firmware loading platform trigger not present,
ignoring test
firmware: loading_platform #
<trim>
# Testing with the file missing...
with: the_file #
# Batched request_firmware() nofile try #1 OK
request_firmware(): nofile_try #
# Batched request_firmware() nofile try #2 OK
request_firmware(): nofile_try #
# Batched request_firmware() nofile try #3 OK
request_firmware(): nofile_try #
# Batched request_firmware() nofile try #4 OK
request_firmware(): nofile_try #
# Batched request_firmware() nofile try #5 OK
request_firmware(): nofile_try #
# Batched request_firmware_into_buf() nofile try #1 OK
request_firmware_into_buf(): nofile_try #
# Batched request_firmware_into_buf() nofile try #2 OK
request_firmware_into_buf(): nofile_try #
[ 703.458858] rcu: INFO: rcu_preempt detected expedited stalls on
CPUs/tasks: { 0-... } 6847 jiffies s: 5897 root: 0x1/.
[ 703.638281] rcu: blocking rcu_node structures:
[ 703.823398] Task dump for CPU 0:
[ 704.010337] swapper/0 R running task 0 0 0 0x0000002a
[ 704.183444] Call trace:
[ 704.350054] __switch_to+0xf8/0x148
[ 704.519735] function_trace_call+0xec/0x138
[ 704.692279] ftrace_ops_no_ops+0xd0/0x190
[ 704.857800] ftrace_graph_call+0x0/0xc
[ 705.007071] cpuidle_reflect+0x1c/0x50
[ 705.192659] do_idle+0x230/0x2c0
[ 705.367973] cpu_startup_entry+0x2c/0x70
[ 705.534699] rest_init+0x1ac/0x280
[ 705.702975] arch_call_rest_init+0x14/0x1c
[ 705.868195] start_kernel+0x4ec/0x524
[ 760.984689] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
[ 761.050531] rcu: 0-....: (3 GPs behind) idle=d36/0/0x3
softirq=30311/30311 fqs=3259
[ 761.116235] (detected by 1, t=6520 jiffies, g=69177, q=54)
[ 761.181632] Task dump for CPU 0:
[ 761.242682] swapper/0 R running task 0 0 0 0x0000002a
[ 761.308592] Call trace:
[ 761.368972] __switch_to+0xf8/0x148
[ 761.430354] function_trace_call+0xec/0x138
[ 761.492435] ftrace_ops_no_ops+0xd0/0x190
[ 761.553839] ftrace_graph_call+0x0/0xc
[ 761.614710] cpuidle_reflect+0x1c/0x50
[ 761.675523] do_idle+0x230/0x2c0
[ 761.735348] cpu_startup_entry+0x2c/0x70
[ 761.795729] rest_init+0x1ac/0x280
[ 761.855426] arch_call_rest_init+0x14/0x1c
[ 761.915590] start_kernel+0x4ec/0x524
[ 785.377148] rcu: INFO: rcu_preempt detected expedited stalls on
CPUs/tasks: { 0-... } 27327 jiffies s: 5897 root: 0x1/.
[ 785.446389] rcu: blocking rcu_node structures:
[ 785.509145] Task dump for CPU 0:
[ 785.570463] swapper/0 R running task 0 0 0 0x0000002a
[ 785.635790] Call trace:
[ 785.696364] __switch_to+0xf8/0x148
[ 785.757660] 0x0
[ 802.076559] rcu: INFO: rcu_preempt self-detected stall on CPU
[ 802.139876] rcu: 0-....: (4 GPs behind)
idle=d3a/1/0x4000000000000004 softirq=30311/30311 fqs=3258
[ 802.207058] (t=6533 jiffies g=69181 q=191)
[ 802.268659] Task dump for CPU 0:
[ 802.329629] swapper/0 R running task 0 0 0 0x0000002a
[ 802.394536] Call trace:
[ 802.454730] dump_backtrace+0x0/0x1f8
[ 802.516048] show_stack+0x2c/0x38
[ 802.576849] sched_show_task+0x1ac/0x240
[ 802.638160] dump_cpu_task+0x48/0x58
[ 802.699098] rcu_dump_cpu_stacks+0xbc/0xfc
[ 802.760519] rcu_sched_clock_irq+0x7d8/0xc60
[ 802.821943] update_process_times+0x34/0xb8
[ 802.883276] tick_sched_handle.isra.16+0x44/0x68
[ 802.944984] tick_sched_timer+0x50/0xa0
[ 803.005901] __hrtimer_run_queues+0x2c0/0x638
[ 803.067397] hrtimer_interrupt+0xd8/0x248
[ 803.128494] arch_timer_handler_phys+0x38/0x58
[ 803.189953] handle_percpu_devid_irq+0xd0/0x468
[ 803.251437] generic_handle_irq+0x3c/0x58
[ 803.312373] __handle_domain_irq+0x68/0xc0
[ 803.373219] gic_handle_irq+0x60/0xb8
[ 803.433731] el1_irq+0xbc/0x180
[ 803.493681] arch_local_irq_restore+0x4/0x8
[ 803.554618] kmem_cache_free+0xb0/0x4a0
[ 803.615231] kfree_skbmem+0xc8/0xe8
[ 803.675452] kfree_skb+0x9c/0x250
[ 803.735442] enqueue_to_backlog+0xdc/0x390
[ 803.796164] netif_rx_internal+0x98/0x2f8
[ 803.856651] netif_rx+0x60/0x318
[ 803.916259] usbnet_skb_return+0x7c/0x150
[ 803.976614] ax88179_rx_fixup+0x100/0x1e8
[ 804.036898] usbnet_bh+0x1d0/0x330
[ 804.096500] usbnet_bh_tasklet+0x20/0x30
[ 804.156685] tasklet_action_common.isra.17+0x148/0x178
[ 804.218153] tasklet_action+0x2c/0x38
[ 804.278130] __do_softirq+0x154/0x6fc
[ 804.338094] irq_exit+0x174/0x180
[ 804.397695] __handle_domain_irq+0x6c/0xc0
[ 804.458067] gic_handle_irq+0x60/0xb8
[ 804.518016] el1_irq+0xbc/0x180
[ 804.577436] tick_nohz_idle_exit+0x6c/0xd0
[ 804.637874] do_idle+0x198/0x2c0
[ 804.697323] cpu_startup_entry+0x2c/0x70
[ 804.757389] rest_init+0x1ac/0x280
[ 804.816924] arch_call_rest_init+0x14/0x1c
[ 804.877059] start_kernel+0x4ec/0x524
[ 865.249148] rcu: INFO: rcu_preempt detected expedited stalls on
CPUs/tasks: { 0-... } 47295 jiffies s: 5897 root: 0x1/.
[ 865.316312] rcu: blocking rcu_node structures:
[ 865.377050] Task dump for CPU 0:
[ 865.436479] swapper/0 R running task 0 0 0 0x0000002a
[ 865.499869] Call trace:
[ 865.558584] __switch_to+0xf8/0x148
[ 865.618377] 0x0
[ 867.936304] ax88179_178a 1-1.1:1.0 eth0: ax88179 - Link status is: 0
[ 869.373982] wlcore: down
[ 875.464663] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot
req 400000Hz, actual 400000HZ div = 31)
[ 884.666485] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot
req 25000000Hz, actual 24800000HZ div = 0)
[ 884.921791] ------------[ cut here ]------------
[ 884.971615] WARNING: CPU: 1 PID: 326 at
/usr/src/kernel/drivers/net/wireless/ti/wlcore/io.h:52
wlcore_set_partition+0x68/0x520 [wlcore]
[ 885.029490] Modules linked in: sch_fq 8021q garp mrp stp llc
iptable_filter ip_tables x_tables cls_bpf sch_ingress veth test_bpf
algif_hash wl18xx wlcore mac80211 cfg80211 snd_soc_hdmi_codec hci_uart
btqca btbcm adv7511 bluetooth wlcore_sdio snd_soc_audio_graph_card cec
crct10dif_ce snd_soc_simple_card_utils rfkill lima gpu_sched kirin_drm
dw_drm_dsi drm_kms_helper drm fuse [last unloaded: trace_printk]
[ 885.165343] CPU: 1 PID: 326 Comm: NetworkManager Tainted: G
W 5.8.0-next-20200810 #1
[ 885.220456] Hardware name: HiKey Development Board (DT)
[ 885.272459] pstate: 00000005 (nzcv daif -PAN -UAO BTYPE=--)
[ 885.334688] pc : wlcore_set_partition+0x68/0x520 [wlcore]
[ 885.396798] lr : wl12xx_set_power_on+0x90/0x188 [wlcore]
[ 885.458495] sp : ffff800013bf30e0
[ 885.517806] x29: ffff800013bf30e0 x28: ffff00006a9edb48
[ 885.579741] x27: 0000000000000003 x26: 0000000000000000
[ 885.641668] x25: ffff00006acf3120 x24: ffff00006a9edce0
[ 885.703396] x23: ffff800009837000 x22: 0000000000000000
[ 885.764913] x21: ffff800009837000 x20: ffff8000094da068
[ 885.826615] x19: ffff00006acf3120 x18: ffffffffffffffff
[ 885.888716] x17: 0000000000000000 x16: 0000000000000000
[ 885.950787] x15: 0000000000000000 x14: ffff0000772717c0
[ 886.013104] x13: ffff800065bcd000 x12: 0000000005c00ff0
[ 886.075443] x11: 0000000005c00000 x10: 0000000000000000
[ 886.137915] x9 : ffff8000126a0a88 x8 : 0000000000000001
[ 886.200375] x7 : 000000000000063c x6 : ffff800013bf2f40
[ 886.262892] x5 : 0000000000000001 x4 : ffff00006ad00000
[ 886.326075] x3 : 00c0000000000400 x2 : ffff000069831680
[ 886.390946] x1 : 0000000000700000 x0 : 0000000000000009
[ 886.454521] Call trace:
[ 886.471228] wlcore_set_partition+0x68/0x520 [wlcore]
[ 886.490669] wl12xx_set_power_on+0x90/0x188 [wlcore]
[ 886.510013] wl12xx_chip_wakeup+0x3c/0x260 [wlcore]
[ 886.529294] wl1271_op_add_interface+0x504/0xa08 [wlcore]
[ 886.549263] drv_add_interface+0xa0/0x3e0 [mac80211]
[ 886.568802] ieee80211_do_open+0x38c/0xc60 [mac80211]
[ 886.588461] ieee80211_open+0x4c/0x68 [mac80211]
[ 886.607462] __dev_open+0x118/0x1a8
[ 886.625308] __dev_change_flags+0x16c/0x1d0
[ 886.643908] dev_change_flags+0x3c/0x78
[ 886.662123] do_setlink+0x35c/0xed8
[ 886.679969] __rtnl_newlink+0x404/0x790
[ 886.698180] rtnl_newlink+0x54/0x80
[ 886.716037] rtnetlink_rcv_msg+0x29c/0x4f0
[ 886.734510] netlink_rcv_skb+0x64/0x130
[ 886.752691] rtnetlink_rcv+0x28/0x38
[ 886.770608] netlink_unicast+0x1dc/0x290
[ 886.788870] netlink_sendmsg+0x2b8/0x3f8
[ 886.807122] ____sys_sendmsg+0x288/0x2d0
[ 886.825359] ___sys_sendmsg+0x90/0xd0
[ 886.843309] __sys_sendmsg+0x78/0xd0
[ 886.861158] __arm64_sys_sendmsg+0x2c/0x38
[ 886.879529] el0_svc_common.constprop.3+0x7c/0x198
[ 886.898659] do_el0_svc+0x34/0xa0
[ 886.916260] el0_sync_handler+0x16c/0x210
[ 886.934574] el0_sync+0x140/0x180
[ 886.952129] irq event stamp: 410260
[ 886.969885] hardirqs last enabled at (410259):
[<ffff80001133808c>] _raw_spin_unlock_irqrestore+0x94/0xc0
[ 886.994216] hardirqs last disabled at (410260):
[<ffff80001132f068>] __schedule+0xf0/0x8f0
[ 887.017150] softirqs last enabled at (410218):
[<ffff800010001a94>] __do_softirq+0x674/0x6fc
[ 887.040184] softirqs last disabled at (410211):
[<ffff800010097eb4>] irq_exit+0x174/0x180
[ 887.062692] ---[ end trace 3c2f34a7bd5df45e ]---
[ 887.144763] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot
req 400000Hz, actual 400000HZ div = 31)
[ 887.376864] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot
req 25000000Hz, actual 24800000HZ div = 0)
[ 887.516634] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot
req 400000Hz, actual 400000HZ div = 31)
[ 887.716961] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot
req 25000000Hz, actual 24800000HZ div = 0)
[ 888.013264] ------------[ cut here ]------------
[ 888.074832] WARNING: CPU: 1 PID: 326 at
/usr/src/kernel/drivers/net/wireless/ti/wlcore/io.h:52
wlcore_set_partition+0x68/0x520 [wlcore]
[ 888.144754] Modules linked in: sch_fq 8021q garp mrp stp llc
iptable_filter ip_tables x_tables cls_bpf sch_ingress veth test_bpf
algif_hash wl18xx wlcore mac80211 cfg80211 snd_soc_hdmi_codec hci_uart
btqca btbcm adv7511 bluetooth wlcore_sdio snd_soc_audio_graph_card cec
crct10dif_ce snd_soc_simple_card_utils rfkill lima gpu_sched kirin_drm
dw_drm_dsi drm_kms_helper drm fuse [last unloaded: trace_printk]
[ 888.310219] CPU: 1 PID: 326 Comm: NetworkManager Tainted: G
W 5.8.0-next-20200810 #1
[ 888.377744] Hardware name: HiKey Development Board (DT)
[ 888.439538] pstate: 00000005 (nzcv daif -PAN -UAO BTYPE=--)
[ 888.500910] pc : wlcore_set_partition+0x68/0x520 [wlcore]
[ 888.561065] lr : wlcore_set_partition+0x20/0x520 [wlcore]
[ 888.620899] sp : ffff800013bf30e0
[ 888.678069] x29: ffff800013bf30e0 x28: ffff00006a9edb48
[ 888.737880] x27: 0000000000000002 x26: 0000000000000000
[ 888.798234] x25: ffff00006acf3120 x24: ffff00006a9edce0
[ 888.858216] x23: ffff800009837000 x22: 0000000000000000
[ 888.918112] x21: ffff800009837000 x20: ffff8000094da068
[ 888.978896] x19: ffff00006acf3120 x18: ffffffffffffffff
[ 889.038725] x17: 0000000000000000 x16: 0000000000000000
[ 889.098607] x15: 0000000000000000 x14: ffff0000772717c0
[ 889.158319] x13: ffff800065bcd000 x12: 0000000006700ff0
[ 889.218287] x11: 0000000006700000 x10: 0000000000000000
[ 889.278223] x9 : ffff8000126a0a88 x8 : 0000000000000001
[ 889.338189] x7 : 0000000000000754 x6 : 0000000000021c0c
[ 889.398530] x5 : ffff000062570300 x4 : 0000000000000000
[ 889.458829] x3 : 00c0000000000400 x2 : ffff000069831680
[ 889.519263] x1 : 0000000000700000 x0 : 0000000000000009
[ 889.579662] Call trace:
[ 889.636302] wlcore_set_partition+0x68/0x520 [wlcore]
[ 889.696047] wl12xx_set_power_on+0x90/0x188 [wlcore]
[ 889.755840] wl12xx_chip_wakeup+0x3c/0x260 [wlcore]
[ 889.815948] wl1271_op_add_interface+0x504/0xa08 [wlcore]
[ 889.877624] drv_add_interface+0xa0/0x3e0 [mac80211]
[ 889.937184] ieee80211_do_open+0x38c/0xc60 [mac80211]
[ 889.997542] ieee80211_open+0x4c/0x68 [mac80211]
[ 890.056701] __dev_open+0x118/0x1a8
[ 890.114776] __dev_change_flags+0x16c/0x1d0
[ 890.173336] dev_change_flags+0x3c/0x78
[ 890.231500] do_setlink+0x35c/0xed8
[ 890.288995] __rtnl_newlink+0x404/0x790
[ 890.347399] rtnl_newlink+0x54/0x80
[ 890.404950] rtnetlink_rcv_msg+0x29c/0x4f0
[ 890.463423] netlink_rcv_skb+0x64/0x130
[ 890.522076] rtnetlink_rcv+0x28/0x38
[ 890.579762] netlink_unicast+0x1dc/0x290
[ 890.638249] netlink_sendmsg+0x2b8/0x3f8
[ 890.696278] ____sys_sendmsg+0x288/0x2d0
[ 890.754574] ___sys_sendmsg+0x90/0xd0
[ 890.813095] __sys_sendmsg+0x78/0xd0
[ 890.871646] __arm64_sys_sendmsg+0x2c/0x38
[ 890.930336] el0_svc_common.constprop.3+0x7c/0x198
[ 890.989993] do_el0_svc+0x34/0xa0
[ 891.048176] el0_sync_handler+0x16c/0x210
[ 891.106626] el0_sync+0x140/0x180
[ 891.164652] irq event stamp: 410260
[ 891.222545] hardirqs last enabled at (410259):
[<ffff80001133808c>] _raw_spin_unlock_irqrestore+0x94/0xc0
[ 891.287511] hardirqs last disabled at (410260):
[<ffff80001132f068>] __schedule+0xf0/0x8f0
[ 891.350969] softirqs last enabled at (410218):
[<ffff800010001a94>] __do_softirq+0x674/0x6fc
[ 891.415147] softirqs last disabled at (410211):
[<ffff800010097eb4>] irq_exit+0x174/0x180
[ 891.478913] ---[ end trace 3c2f34a7bd5df45f ]---
[ 891.610580] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot
req 400000Hz, actual 400000HZ div = 31)
[ 891.866528] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot
req 25000000Hz, actual 24800000HZ div = 0)
[ 892.014674] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot
req 400000Hz, actual 400000HZ div = 31)
[ 892.282641] mmc_host mmc2: Bus speed (slot 0) = 24800000Hz (slot
req 25000000Hz, actual 24800000HZ div = 0)

full test log link,
https://qa-reports.linaro.org/lkft/linux-next-oe/build/next-20200810/testrun/3045576/suite/linux-log-parser/test/check-kernel-warning-1653950/log

--
Linaro LKFT
https://lkft.linaro.org