On 2/5/2024 11:40 PM, Kalle Valo wrote:
Kang Yang <quic_kangyang@xxxxxxxxxxx> writes:
Add P2P support for WCN7850.
Kang Yang (11):
wifi: ath12k: fix broken structure wmi_vdev_create_cmd
wifi: ath12k: fix incorrect logic of calculating vdev_stats_id
wifi: ath12k: change interface combination for P2P mode
wifi: ath12k: add P2P IE in beacon template
wifi: ath12k: implement handling of P2P NoA event
wifi: ath12k: implement remain on channel for P2P mode
wifi: ath12k: change WLAN_SCAN_PARAMS_MAX_IE_LEN from 256 to 512
wifi: ath12k: allow specific mgmt frame tx while vdev is not up
wifi: ath12k: move peer delete after vdev stop of station for WCN7850
wifi: ath12k: designating channel frequency for ROC scan
wifi: ath12k: advertise P2P dev support for WCN7850
I did some quick tests by running various p2p commands with wpa_cli and
noticed the warning below. We might have some issues with our RCU usage,
please check. But no need to resend because of this, followup patch
fixing this is fine.
[ 1108.916980] =============================
[ 1108.917068] WARNING: suspicious RCU usage
[ 1108.917151] 6.8.0-rc2-wt-ath+ #1273 Not tainted
[ 1108.917235] -----------------------------
[ 1108.917318] drivers/net/wireless/ath/ath12k/mac.c:583 suspicious rcu_dereference_check() usage!
[ 1108.917400] #012[ 1108.917400] other info that might help us debug this:#012[ 1108.917400]
[ 1108.917484] #012[ 1108.917484] rcu_scheduler_active = 2, debug_locks = 1
[ 1108.917566] no locks held by swapper/3/0.
I conducted a simple test, but cannot reproduce.
It seems i need to use rcu_read_lock() and rcu_read_unlock() for
rcu_dereference().
Will fix it in a separate patch.
[ 1108.917649] #012[ 1108.917649] stack backtrace:
[ 1108.917729] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 6.8.0-rc2-wt-ath+ #1273
[ 1108.917810] Hardware name: Intel(R) Client Systems NUC8i7HVK/NUC8i7HVB, BIOS HNKBLi70.86A.0067.2021.0528.1339 05/28/2021
[ 1108.917892] Call Trace:
[ 1108.917968] <IRQ>
[ 1108.918046] dump_stack_lvl+0x82/0xc0
[ 1108.918132] dump_stack+0x10/0x20
[ 1108.918206] lockdep_rcu_suspicious+0x210/0x3a0
[ 1108.918285] ath12k_mac_get_ar_by_vdev_id+0x18e/0x210 [ath12k]
[ 1108.918403] ath12k_wmi_op_rx+0x2bb/0x1a30 [ath12k]
[ 1108.918511] ? ath12k_chan_info_event+0x970/0x970 [ath12k]
[ 1108.918624] ? __lock_acquire+0xd45/0x1de0
[ 1108.918706] ? __kasan_check_read+0x11/0x20
[ 1108.918789] ? debug_smp_processor_id+0x17/0x20
[ 1108.918863] ? __lock_release.isra.0+0x49d/0xae0
[ 1108.918934] ? debug_smp_processor_id+0x17/0x20
[ 1108.919007] ? reacquire_held_locks+0x4d0/0x4d0
[ 1108.919080] ? ath12k_ce_recv_process_cb+0x4b3/0x960 [ath12k]
[ 1108.919195] ath12k_htc_rx_completion_handler+0x361/0x650 [ath12k]
[ 1108.919302] ? ath12k_ce_recv_process_cb+0x4b3/0x960 [ath12k]
[ 1108.919409] ? trace_hardirqs_on+0x49/0x50
[ 1108.919485] ath12k_ce_recv_process_cb+0x5c6/0x960 [ath12k]
[ 1108.919591] ? ath12k_ce_rx_post_pipe+0x990/0x990 [ath12k]
[ 1108.919658] ? __wake_up_bit+0x120/0x120
[ 1108.919705] ? handle_irq_event+0x10e/0x1c0
[ 1108.919752] ath12k_ce_per_engine_service+0xda/0x110 [ath12k]
[ 1108.919817] ath12k_pci_ce_tasklet+0x65/0x120 [ath12k]
[ 1108.919879] ? trace_tasklet_entry+0xe4/0x110
[ 1108.919945] tasklet_action_common.isra.0+0x24c/0x3d0
[ 1108.920007] tasklet_action+0x4f/0x70
[ 1108.920068] __do_softirq+0x1c2/0x868
[ 1108.920116] irq_exit_rcu+0xab/0x110
[ 1108.920159] common_interrupt+0xad/0xd0
[ 1108.920201] </IRQ>
[ 1108.920309] <TASK>
[ 1108.920355] asm_common_interrupt+0x27/0x40
[ 1108.920399] RIP: 0010:cpuidle_enter_state+0xdc/0x580
[ 1108.920448] Code: ff ff ff ff 49 89 c7 e8 e2 fa 55 ff 31 ff e8 cb 29 54 fd 80 7d d0 00 0f 85 4a 02 00 00 e8 0c f9 55 ff 84 c0 0f 84 32 02 00 00 <45> 85 f6 0f 88 95 01 00 00 49 63 d6 48 83 fa 0a 0f 83 dd 02 00 00
[ 1108.920496] RSP: 0018:ffffc900001afd20 EFLAGS: 00000202
[ 1108.920545] RAX: 000000000065289d RBX: ffff888116413400 RCX: 1ffffffff47726c1
[ 1108.920593] RDX: 0000000000000000 RSI: ffffffffa2278020 RDI: ffffffffa24176e0
[ 1108.920639] RBP: ffffc900001afd70 R08: 0000000000000001 R09: fffffbfff4772c1a
[ 1108.920686] R10: ffffffffa3b960d7 R11: 0000000000000000 R12: ffffffffa34c1740
[ 1108.920733] R13: 0000000000000002 R14: 0000000000000002 R15: 000001023093b5a2
[ 1108.920793] cpuidle_enter+0x4a/0xa0
[ 1108.920840] call_cpuidle+0x42/0xb0
[ 1108.920882] ? tick_nohz_idle_retain_tick+0x70/0xa0
[ 1108.920946] cpuidle_idle_call+0x1c9/0x290
[ 1108.921002] ? arch_cpu_idle_exit+0x30/0x30
[ 1108.921045] ? debug_smp_processor_id+0x17/0x20
[ 1108.921092] do_idle+0xfb/0x160
[ 1108.921137] cpu_startup_entry+0x54/0x60
[ 1108.921182] start_secondary+0x201/0x290
[ 1108.921227] ? set_cpu_sibling_map+0x1f20/0x1f20
[ 1108.921273] secondary_startup_64_no_verify+0x15e/0x16b
[ 1108.921324] </TASK>