diff options
author | Miri Korenblit <miriam.rachel.korenblit@intel.com> | 2024-03-06 14:14:48 +0200 |
---|---|---|
committer | iwlwifi publisher <> | 2024-04-17 13:05:45 +0000 |
commit | c0207e7c9b82e6d1fdb7260fd719b296af249837 (patch) | |
tree | 7489817ae0898eadd6b3fca7bc651050dedcc245 | |
parent | 9a69cba83f5a1b5fea441d290740b4cdbb1f745a (diff) | |
download | backport-iwlwifi-c0207e7c9b82e6d1fdb7260fd719b296af249837.tar.gz |
[BUGFIX] wifi: iwlwifi: mvm: initialize unblock_esr_tpt_wk also for non-MLO
This work is initialized in the MLD API code, but cancelled in the code
thats is common to both non-MLD and MLD, leading to a NULL dereference
in
non-MLD devices
type=bugfix
ticket=none
fixes=If9eb946e929a39e10fe5f4638bc8bc3f8976edf1
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Change-Id: Ibe5f512dc94496afa16dc1db23b141e0139f2416
Reviewed-on: https://gerritwcs.ir.intel.com/c/iwlwifi-stack-dev/+/97813
automatic-review: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
tested: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Tested-by: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
x-iwlwifi-stack-dev: 81e882a87e7b4529c858f8c4708728bdb3a34b89
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 15 | ||||
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c | 15 | ||||
-rw-r--r-- | versions | 2 |
3 files changed, 16 insertions, 16 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c index 90d7c87df0..e99f6b7547 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -4078,6 +4078,18 @@ static void iwl_mvm_mlo_int_scan_wk(struct wiphy *wiphy, struct wiphy_work *wk) mutex_unlock(&mvmvif->mvm->mutex); } +static void iwl_mvm_unblock_esr_tpt(struct wiphy *wiphy, struct wiphy_work *wk) +{ + struct iwl_mvm_vif *mvmvif = + container_of(wk, struct iwl_mvm_vif, unblock_esr_tpt_wk); + struct iwl_mvm *mvm = mvmvif->mvm; + struct ieee80211_vif *vif = iwl_mvm_get_bss_vif(mvm); + + mutex_lock(&mvm->mutex); + iwl_mvm_unblock_esr(mvm, vif, IWL_MVM_ESR_BLOCKED_TPT); + mutex_unlock(&mvm->mutex); +} + static int iwl_mvm_sta_state_assoc_to_authorized(struct iwl_mvm *mvm, struct ieee80211_vif *vif, @@ -4123,6 +4135,9 @@ iwl_mvm_sta_state_assoc_to_authorized(struct iwl_mvm *mvm, wiphy_delayed_work_init(&mvmvif->mlo_int_scan_wk, iwl_mvm_mlo_int_scan_wk); + wiphy_work_init(&mvmvif->unblock_esr_tpt_wk, + iwl_mvm_unblock_esr_tpt); + /* when client is authorized (AP station marked as such), * try to enable the best link(s). */ diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c index ba8e742c70..95c254e4ce 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c @@ -4,19 +4,6 @@ */ #include "mvm.h" - -static void iwl_mvm_unblock_esr_tpt(struct wiphy *wiphy, struct wiphy_work *wk) -{ - struct iwl_mvm_vif *mvmvif = - container_of(wk, struct iwl_mvm_vif, unblock_esr_tpt_wk); - struct iwl_mvm *mvm = mvmvif->mvm; - struct ieee80211_vif *vif = iwl_mvm_get_bss_vif(mvm); - - mutex_lock(&mvm->mutex); - iwl_mvm_unblock_esr(mvm, vif, IWL_MVM_ESR_BLOCKED_TPT); - mutex_unlock(&mvm->mutex); -} - static int iwl_mvm_mld_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) { @@ -90,8 +77,6 @@ static int iwl_mvm_mld_mac_add_interface(struct ieee80211_hw *hw, INIT_DELAYED_WORK(&mvmvif->csa_work, iwl_mvm_channel_switch_disconnect_wk); - wiphy_work_init(&mvmvif->unblock_esr_tpt_wk, iwl_mvm_unblock_esr_tpt); - if (vif->type == NL80211_IFTYPE_MONITOR) { mvm->monitor_on = true; ieee80211_hw_set(mvm->hw, RX_INCLUDES_FCS); @@ -2,4 +2,4 @@ BACKPORTS_VERSION="(see git)" BACKPORTED_KERNEL_VERSION="(see git)" BACKPORTED_KERNEL_NAME="iwlwifi" BACKPORTS_BUILD_TSTAMP=__DATE__ \" \" __TIME__ -BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:11978:89cdde18" +BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:11979:81e882a8" |