qcacld-3.0: Fix CPU soft lock up during workqueue cancellation
Propagation from qcacld-2.0 to qcacld-3.0
ipv4 and ipv6 workqueues are initialized in open adapter for STA
and P2P modes but not for AP mode. The workqueues are cancelled
in stop adapter. The cancel_work_sync may be called on AP adapter
workqueue also, if just in time, the AP adapter mode has changed
to STA mode, for example during hostapd stop etc. This can cause
the cancel_work_sync to continuously loop since INIT_WORK has not
been called, finally raising CPU stuck. There is no harm in calling
INIT_WORK on any workqueue since it only makes sure that in cases
as above there is no undeterministic behaviour.
Fix cancel_work_sync issues by initializing ipv4 and ipv6 workqueues.
CRs-Fixed: 2121723
Change-Id: Ief8dd0c797dd1492fa30ca4e41da9e583548e21d
1 file changed