[BUGFIX] wifi: iwlwifi: mvm: leave EMLSR before activating non-BSS link

The call to iwl_mvm_block_esr() we will schedule an exit from EMLSR
worker, but the worker cannot run before the activation of the non-BSS
link, as ieee80211_remain_on_channel already holds the wiphy mutex.

Fix that by explicitly calling ieee80211_set_active_links()
to leave EMLSR, and then doing iwl_mvm_block_esr() only for
consistency and to avoid re-entering it before ready.

Note that a call to ieee80211_set_active_links requires to release the
mvm mutex, but that's ok since we still hold the wiphy lock. The only
thing that might race here is the ESR_MODE_NOTIF, so this changes its
handler to run under the wiphy lock.

type=bugfix
ticket=jira:WIFI-397899
fixes=Idf3a3caf5cdc3e69c81710b7ceb57e87f2de87e4

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Change-Id: Ib56c3dec69f5d9ef1c67241be554013af8bde056
Reviewed-on: https://gerritwcs.ir.intel.com/c/iwlwifi-stack-dev/+/100195
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
tested: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
Tested-by: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
(cherry picked from commit 549cd3b72a5b2ee34520c51e90e7b59e1fc4ced7)
Reviewed-on: https://gerritwcs.ir.intel.com/c/iwlwifi-stack-dev/+/101525
x-iwlwifi-stack-dev: a0cea6cb1d5f3bd2b1c9caae9fb43904824e6a39
8 files changed