> -----Original Message----- > From: Maharaja Kennadyrajan <maharaja.kennadyrajan@xxxxxxxxxxxxxxxx> > Sent: Wednesday, April 16, 2025 7:32 AM > To: ath12k@xxxxxxxxxxxxxxxxxxx > Cc: linux-wireless@xxxxxxxxxxxxxxx; Maharaja Kennadyrajan > <maharaja.kennadyrajan@xxxxxxxxxxxxxxxx> > Subject: [PATCH] wifi: ath12k: Prevent sending WMI commands to firmware > during firmware crash Ignore this patch as tag is missing in the commit title. Will add this and send in next version. > > WARNING: This email originated from outside of Qualcomm. Please be wary of > any links or attachments, and do not enable macros. > > Currently, we encounter the following kernel call trace when a firmware crash > occurs. This happens because the host sends WMI commands to the firmware > while it is in recovery, causing the commands to fail and resulting in the kernel call > trace. > > Set the ATH12K_FLAG_CRASH_FLUSH and ATH12K_FLAG_RECOVERY flags when > the host driver receives the firmware crash notification from MHI. This prevents > sending WMI commands to the firmware during recovery. > > Call Trace: > <TASK> > dump_stack_lvl+0x75/0xc0 > register_lock_class+0x6be/0x7a0 > ? __lock_acquire+0x644/0x19a0 > __lock_acquire+0x95/0x19a0 > lock_acquire+0x265/0x310 > ? ath12k_ce_send+0xa2/0x210 [ath12k] > ? find_held_lock+0x34/0xa0 > ? ath12k_ce_send+0x56/0x210 [ath12k] > _raw_spin_lock_bh+0x33/0x70 > ? ath12k_ce_send+0xa2/0x210 [ath12k] > ath12k_ce_send+0xa2/0x210 [ath12k] > ath12k_htc_send+0x178/0x390 [ath12k] > ath12k_wmi_cmd_send_nowait+0x76/0xa0 [ath12k] > ath12k_wmi_cmd_send+0x62/0x190 [ath12k] > ath12k_wmi_pdev_bss_chan_info_request+0x62/0xc0 [ath1 > ath12k_mac_op_get_survey+0x2be/0x310 [ath12k] > ieee80211_dump_survey+0x99/0x240 [mac80211] > nl80211_dump_survey+0xe7/0x470 [cfg80211] ? kmalloc_reserve+0x59/0xf0 > genl_dumpit+0x24/0x70 > netlink_dump+0x177/0x360 > __netlink_dump_start+0x206/0x280 > genl_family_rcv_msg_dumpit.isra.22+0x8a/0xe0 > ? genl_family_rcv_msg_attrs_parse.isra.23+0xe0/0xe0 > ? genl_op_lock.part.12+0x10/0x10 > ? genl_dumpit+0x70/0x70 > genl_rcv_msg+0x1d0/0x290 > ? nl80211_del_station+0x330/0x330 [cfg80211] ? > genl_get_cmd_both+0x50/0x50 > netlink_rcv_skb+0x4f/0x100 > genl_rcv+0x1f/0x30 > netlink_unicast+0x1b6/0x260 > netlink_sendmsg+0x31a/0x450 > __sock_sendmsg+0xa8/0xb0 > ____sys_sendmsg+0x1e4/0x260 > ___sys_sendmsg+0x89/0xe0 > ? local_clock_noinstr+0xb/0xc0 > ? rcu_is_watching+0xd/0x40 > ? kfree+0x1de/0x370 > ? __sys_sendmsg+0x7a/0xc0 > > Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00199- > QCAHKSWPL_SILICONZ-1 > > Fixes: a9b46dd2e483 ("wifi: ath12k: Add firmware coredump collection support") > Signed-off-by: Maharaja Kennadyrajan > <maharaja.kennadyrajan@xxxxxxxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath12k/mhi.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath12k/mhi.c > b/drivers/net/wireless/ath/ath12k/mhi.c > index 9c929c4ad8a8..08f44baf182a 100644 > --- a/drivers/net/wireless/ath/ath12k/mhi.c > +++ b/drivers/net/wireless/ath/ath12k/mhi.c > @@ -1,7 +1,7 @@ > // SPDX-License-Identifier: BSD-3-Clause-Clear > /* > * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. > - * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. > + * Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved. > */ > > #include <linux/msi.h> > @@ -285,8 +285,11 @@ static void ath12k_mhi_op_status_cb(struct > mhi_controller *mhi_cntrl, > break; > } > > - if (!(test_bit(ATH12K_FLAG_UNREGISTERING, &ab->dev_flags))) > + if (!(test_bit(ATH12K_FLAG_UNREGISTERING, &ab->dev_flags))) { > + set_bit(ATH12K_FLAG_CRASH_FLUSH, &ab->dev_flags); > + set_bit(ATH12K_FLAG_RECOVERY, &ab->dev_flags); > queue_work(ab->workqueue_aux, &ab->reset_work); > + } > break; > default: > break; > > base-commit: 176f3009ae598d0523b267db319fe16f69577231 > -- > 2.17.1 >