Commit e715c930 authored by Emmanuel Grumbach's avatar Emmanuel Grumbach Committed by Johannes Berg

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

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: 4d08c0b3 ("wifi: iwlwifi: mvm: handle BA session teardown in RF-kill")
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240703064027.be7a9dbeacde.I5586cb3ca8d6e44f79d819a48a0c22351ff720c9@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 4ec17ce7
...@@ -6410,11 +6410,9 @@ void iwl_mvm_sync_rx_queues_internal(struct iwl_mvm *mvm, ...@@ -6410,11 +6410,9 @@ void iwl_mvm_sync_rx_queues_internal(struct iwl_mvm *mvm,
if (sync) { if (sync) {
lockdep_assert_held(&mvm->mutex); lockdep_assert_held(&mvm->mutex);
ret = wait_event_timeout(mvm->rx_sync_waitq, ret = wait_event_timeout(mvm->rx_sync_waitq,
READ_ONCE(mvm->queue_sync_state) == 0 || READ_ONCE(mvm->queue_sync_state) == 0,
iwl_mvm_is_radio_hw_killed(mvm),
SYNC_RX_QUEUE_TIMEOUT); SYNC_RX_QUEUE_TIMEOUT);
WARN_ONCE(!ret && !iwl_mvm_is_radio_hw_killed(mvm), WARN_ONCE(!ret, "queue sync: failed to sync, state is 0x%lx, cookie %d\n",
"queue sync: failed to sync, state is 0x%lx, cookie %d\n",
mvm->queue_sync_state, mvm->queue_sync_state,
mvm->queue_sync_cookie); mvm->queue_sync_cookie);
} }
......
...@@ -1912,12 +1912,10 @@ static bool iwl_mvm_set_hw_rfkill_state(struct iwl_op_mode *op_mode, bool state) ...@@ -1912,12 +1912,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 rfkill_safe_init_done = READ_ONCE(mvm->rfkill_safe_init_done);
bool unified = iwl_mvm_has_unified_ucode(mvm); bool unified = iwl_mvm_has_unified_ucode(mvm);
if (state) { if (state)
set_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status); 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); clear_bit(IWL_MVM_STATUS_HW_RFKILL, &mvm->status);
}
iwl_mvm_set_rfkill_state(mvm); iwl_mvm_set_rfkill_state(mvm);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment