]> git.hungrycats.org Git - linux/commitdiff
wifi: iwlwifi: mvm: don't wake up rx_sync_waitq upon RFKILL
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Wed, 3 Jul 2024 03:43:16 +0000 (06:43 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jul 2024 07:53:42 +0000 (09:53 +0200)
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>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
drivers/net/wireless/intel/iwlwifi/mvm/ops.c

index a61d5e7c08e04ff5a0958a06cf51766f31f8ed31..81bc0878a61cc910d5ae8c2c2b069dd44be4ef32 100644 (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);
        }
index a93981cb9714ff989e990306ad2be5a0394d2479..7f5685a4838cb16697f332b01be70a16c111258b 100644 (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);