wifi: iwlwifi: mvm: don't wake up rx_sync_waitq upon RFKILL

commit e715c9302b1c6fae990b9898a80fac855549d1f0 upstream.

Since we now want to sync the queues even when we're in RFKILL, we
shouldn't wake up the wait queue since we still expect to get all the
notifications from the firmware.

Fixes: 4d08c0b3357c ("wifi: iwlwifi: mvm: handle BA session teardown in RF-kill")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240703064027.be7a9dbeacde.I5586cb3ca8d6e44f79d819a48a0c22351ff720c9@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Emmanuel Grumbach 2024-07-03 06:43:16 +03:00 committed by Greg Kroah-Hartman
parent 396dc11319
commit 4232ec483b
2 changed files with 4 additions and 8 deletions

View File

@ -6189,11 +6189,9 @@ void iwl_mvm_sync_rx_queues_internal(struct iwl_mvm *mvm,
if (sync) {
lockdep_assert_held(&mvm->mutex);
ret = wait_event_timeout(mvm->rx_sync_waitq,
READ_ONCE(mvm->queue_sync_state) == 0 ||
iwl_mvm_is_radio_hw_killed(mvm),
READ_ONCE(mvm->queue_sync_state) == 0,
SYNC_RX_QUEUE_TIMEOUT);
WARN_ONCE(!ret && !iwl_mvm_is_radio_hw_killed(mvm),
"queue sync: failed to sync, state is 0x%lx, cookie %d\n",
WARN_ONCE(!ret, "queue sync: failed to sync, state is 0x%lx, cookie %d\n",
mvm->queue_sync_state,
mvm->queue_sync_cookie);
}

View File

@ -1854,12 +1854,10 @@ static bool iwl_mvm_set_hw_rfkill_state(struct iwl_op_mode *op_mode, bool state)
bool rfkill_safe_init_done = READ_ONCE(mvm->rfkill_safe_init_done);
bool unified = iwl_mvm_has_unified_ucode(mvm);
if (state) {
if (state)
set_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status);
wake_up(&mvm->rx_sync_waitq);
} else {
else
clear_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status);
}
iwl_mvm_set_rfkill_state(mvm);