]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: iwlwifi: pcie: remember when interrupts are disabled
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Thu, 28 Aug 2025 08:25:57 +0000 (11:25 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:37:10 +0000 (15:37 -0500)
[ Upstream commit 1a33efe4fc64b8135fe94e22299761cc69333404 ]

trans_pcie::fh_mask and hw_mask indicates what are the interrupts are
currently enabled (unmasked).
When we disable all interrupts, those should be set to 0, so if, for
some reason, we get an interrupt even though it was disabled, we will
know to ignore.

Reviewed-by: Yedidya Ben Shimol <yedidya.ben.shimol@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250828111032.e293d6a8385b.I919375e5ad7bd7e4fee4a95ce6ce6978653d6b16@changeid
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/intel/iwlwifi/pcie/gen1_2/internal.h

index f48aeebb151cc6c85f39114ed44e35cb57f73121..86edc79ac09f84f6d852a3b97c555d94d6c326a8 100644 (file)
@@ -818,6 +818,8 @@ static inline void _iwl_disable_interrupts(struct iwl_trans *trans)
                            trans_pcie->fh_init_mask);
                iwl_write32(trans, CSR_MSIX_HW_INT_MASK_AD,
                            trans_pcie->hw_init_mask);
+               trans_pcie->fh_mask = 0;
+               trans_pcie->hw_mask = 0;
        }
        IWL_DEBUG_ISR(trans, "Disabled interrupts\n");
 }
@@ -1000,6 +1002,7 @@ static inline void iwl_enable_rfkill_int(struct iwl_trans *trans)
        } else {
                iwl_write32(trans, CSR_MSIX_FH_INT_MASK_AD,
                            trans_pcie->fh_init_mask);
+               trans_pcie->fh_mask = 0;
                iwl_enable_hw_int_msk_msix(trans,
                                           MSIX_HW_INT_CAUSES_REG_RF_KILL);
        }