RE: [REGRESSION] iwlwifi IO_PAGE_FAULT and Master Disable Timed Out

"Korenblit, Miriam Rachel" <[email protected]> Sun, 2 Aug 2026 07:24:04 +0000
Newsgroups org.kernel.vger.linux-wireless,dev.linux.lists.regressions
Message-ID <DS0PR11MB78800B96A0FE637DC5390E4AA3D62@DS0PR11MB7880.namprd11.prod.outlook.com>

> -----Original Message-----
> From: Chris Bainbridge <[email protected]>
> Sent: Friday, July 31, 2026 8:05 PM
> To: Grumbach, Emmanuel <[email protected]>
> Cc: Berg, Johannes <[email protected]>; Korenblit, Miriam Rachel
> <[email protected]>; [email protected];
> [email protected]
> Subject: [REGRESSION] iwlwifi IO_PAGE_FAULT and Master Disable Timed Out
> 
> Hi,
> 
> 0eaa1f245ac0 ("wifi: iwlwifi: mvm: don't support the reset handshake for old
> firmwares") introduced an intermittent boot regression on my laptop:
> 
> [   15.974991] iwlwifi 0000:01:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT
> domain=0x000a address=0xbe9f5000 flags=0x0000]
> [   15.976184] iwlwifi 0000:01:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT
> domain=0x000a address=0xbe9f5400 flags=0x0000]
> [   15.978501] iwlwifi 0000:01:00.0: Master Disable Timed Out, 100 usec
> 
> The commit only contains:
> 
> +       /* Those firmware versions claim to support the fw_reset_handshake
> +        * but they are buggy.
> +        */
> +       if (IWL_UCODE_MAJOR(mvm->fw->ucode_ver) <= 77)
> +               trans->conf.fw_reset_handshake = false;
> 
> The if condition is evaluating true on my laptop despite using firmware ty-a0-gf-
> a0-89.ucode. So I suspect this is not the correct way to check the firmware
> version?

Yes, seems like you are right.
Thanks for the report!

I am attaching a fix candidate, I'd appreciate if you could test it.
> 
> Also comment #21 on bugzilla.kernel.org bug #220600 (which this commit was
> supposed to fix) reports the same "Master Disable Timed Out" error (although no
> IO_PAGE_FAULTS, probably the bad memory access is not caught without
> iommu=strict).
> 
> #regzbot introduced: 0eaa1f245ac03ed0c6394159360532726f666811
0001-wifi-iwlwifi-mvm-properly-check-the-FW-version.patch (application/octet-stream, 1.8 KB)
From 825098f2de2bc63e5ce180213d9fad040f644fb2 Mon Sep 17 00:00:00 2001
From: Miri Korenblit <[email protected]>
Date: Sun, 2 Aug 2026 10:16:13 +0300
Subject: [PATCH] wifi: iwlwifi: mvm: properly check the FW version
Organization: Intel Israel (74) Limited

The mentioned commit aimed to disable fw reset handshake for FWs which
their API version is less than 77.
But the check is incorrect: in the old format, we should use
IWL_UCODE_API, and for the new TLV format - fw.ucode_ver.
Since iwlmvm handles only FWs with the new format, we can always use
here fw.ucode_ver.

Signed-off-by: Miri Korenblit <[email protected]>
---
 drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
index 2297392db955..7e45808da5b3 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
@@ -1412,15 +1412,13 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_rf_cfg *cfg,
 		 sizeof(mvm->hw->wiphy->fw_version),
 		 "%.31s", fw->fw_version);
 
-	trans->conf.fw_reset_handshake =
-		fw_has_capa(&mvm->fw->ucode_capa,
-			    IWL_UCODE_TLV_CAPA_FW_RESET_HANDSHAKE);
-
-	/* Those firmware versions claim to support the fw_reset_handshake
+	/* Some firmware versions claim to support the fw_reset_handshake
 	 * but they are buggy.
 	 */
-	if (IWL_UCODE_MAJOR(mvm->fw->ucode_ver) <= 77)
-		trans->conf.fw_reset_handshake = false;
+	trans->conf.fw_reset_handshake =
+		fw_has_capa(&mvm->fw->ucode_capa,
+			    IWL_UCODE_TLV_CAPA_FW_RESET_HANDSHAKE) &&
+		mvm->fw->ucode_ver > 77;
 
 	trans->conf.queue_alloc_cmd_ver =
 		iwl_fw_lookup_cmd_ver(mvm->fw,
-- 
2.34.1