iwlwifi IO_PAGE_FAULT and Master Disable Timed Out
Subsystems (2)
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
Korenblit, Miriam Rachel
maintainerQuoted 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] iwlwifiIO_PAGE_FAULTand Master Disable Timed OutHi,
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 usecThe 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
@@ -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
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] iwlwifiIO_PAGE_FAULTand Master Disable Timed OutHi,
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 usecThe 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.
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] iwlwifiIO_PAGE_FAULTand 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
825098f2de2bc63e5ce180213d9fad040f644fb2Mon 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) LimitedThe 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 useIWL_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]>[...]