Skip to contentSkip to conversation

iwlwifi IO_PAGE_FAULT and Master Disable Timed Out

REGRESSION Chris Bainbridge 3 participants 4 messages Jul 31 – Oct 12

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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?

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

#1 lore raw
Quoted 30 lines

-----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:

(quoted diff) +5 -0
+       /* 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;
Quoted 3 lines

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.

Quoted 7 lines

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

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.

---
 drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)
drivers/net/wireless/intel/iwlwifi/mvm/ops.c +5 -7
index 2297392db955..7e45808da5b3 100644
@@ -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,
Signature · 1 line
2.34.1
#2 lore raw
Quoted 30 lines · Miriam Rachel
Quoted 30 lines

-----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:

(quoted diff) +5 -0
+       /* 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;
Quoted 8 lines
Quoted 3 lines

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.

Thanks, the fix is working fine.

#3 lore raw
In reply to Korenblit, Miriam Rachel
Quoted 9 lines · Miriam Rachel
Quoted 9 lines

-----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

Quoted 8 lines
Quoted 3 lines

0eaa1f245ac0 ("wifi: iwlwifi: mvm: don't support the reset handshake for old firmwares") introduced an intermittent boot regression on my laptop:
[...]

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

I am attaching a fix candidate, I'd appreciate if you could test it.

Miri, Chris, what happened to this regression fix? From the outside it looks like it fell through the cracks, but well, it's easy to miss something from there, that's why I'm asking.

Ciao, Thorsten

Quoted 15 lines

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.