Browse Source

qcacld-3.0: Enable delayed peer obj freed feature in the default config

Define the CONFIG_FEATURE_DELAYED_PEER_OBJ_DESTROY to enable peer obj
freed in a delayed work item to avoid any potential scheduling in the
atomic context.

It might invoke wakeup_source_unregister in the peer obj destroy handler
which happens in the atomic context to cause scheduling timeout issue.

Here is the call trace without enabling this flag:
Call trace:
 dump_backtrace.cfi_jt+0x0/0x8
 dump_stack_lvl+0x80/0xb8
 __schedule_bug+0x80/0x134
 __schedule+0x75c/0xacc
 schedule+0x110/0x204
 schedule_timeout+0x48/0x138
 wait_for_common+0x14c/0x314
 __synchronize_srcu+0x13c/0x1e4
 synchronize_srcu+0x2d4/0x414
 wakeup_source_unregister+0xd8/0x1c4
 mlme_peer_object_destroyed_notification+0x3c/0x1ac [kiwi_v2]
 wlan_objmgr_peer_release_ref+0x218/0x300 [kiwi_v2]
 dp_softap_inspect_tx_eap_pkt+0x24c/0x29c [kiwi_v2]
 dp_softap_notify_tx_compl_cbk+0xa4/0xa8 [kiwi_v2]
 dp_tx_comp_process_tx_status+0x28c/0xa90 [kiwi_v2]
 dp_tx_process_htt_completion_be+0x2f4/0x4f4 [kiwi_v2]
 dp_tx_comp_handler+0x5dc/0xaa8 [kiwi_v2]
 dp_service_srngs+0x114/0x4fc [kiwi_v2]
 hif_exec_poll+0xd8/0x3c0 [kiwi_v2]
 __napi_poll+0x64/0x268
 net_rx_action+0x11c/0x3a0
 _stext+0x16c/0x5e4
 __irq_exit_rcu+0x74/0x140
 handle_domain_irq+0xd4/0x154
 gic_handle_irq.33723+0x54/0x2bc
 call_on_irq_stack+0x40/0x70
 do_interrupt_handler+0x44/0xa0
 el1_interrupt+0x34/0x64
 el1h_64_irq_handler+0x1c/0x2c
 el1h_64_irq+0x7c/0x80
 cpuidle_enter_state+0x3b4/0x87c
 do_idle+0x300/0x5a0
 cpu_startup_entry+0x84/0x90
 kernel_init+0x0/0x36c
 start_kernel+0x0/0x61c
 start_kernel+0x500/0x61c
 __primary_switched+0xc4/0x7a7c
bad: scheduling from the idle thread!

Change-Id: Icee1ef30380418596711ef54a95f3286287e1cdd
CRs-Fixed: 3412052
Tiger Yu 2 năm trước cách đây
mục cha
commit
9c48e118d7
1 tập tin đã thay đổi với 3 bổ sung0 xóa
  1. 3 0
      configs/default_defconfig

+ 3 - 0
configs/default_defconfig

@@ -1193,6 +1193,9 @@ CONFIG_WLAN_BCN_RECV_FEATURE := y
 #Flag to enable LTE COEX feature
 #Flag to enable LTE COEX feature
 CONFIG_LTE_COEX := y
 CONFIG_LTE_COEX := y
 
 
+#Flag to enable delayed peer obj free
+CONFIG_FEATURE_DELAYED_PEER_OBJ_DESTROY := y
+
 #Flag to enable/disable TARGET 11d scan
 #Flag to enable/disable TARGET 11d scan
 CONFIG_TARGET_11D_SCAN := y
 CONFIG_TARGET_11D_SCAN := y