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