* RE: [REGRESSION] iwlwifi IO_PAGE_FAULT and Master Disable Timed Out
2026-07-31 17:04 [REGRESSION] iwlwifi IO_PAGE_FAULT and Master Disable Timed Out Chris Bainbridge
@ 2026-08-02 7:24 ` Korenblit, Miriam Rachel
2026-08-04 21:03 ` Chris Bainbridge
0 siblings, 1 reply; 3+ messages in thread
From: Korenblit, Miriam Rachel @ 2026-08-02 7:24 UTC (permalink / raw)
To: Chris Bainbridge, Grumbach, Emmanuel
Cc: Berg, Johannes, linux-wireless@vger.kernel.org,
regressions@lists.linux.dev
[-- Attachment #1: Type: text/plain, Size: 1850 bytes --]
> -----Original Message-----
> From: Chris Bainbridge <chris.bainbridge@gmail.com>
> Sent: Friday, July 31, 2026 8:05 PM
> To: Grumbach, Emmanuel <emmanuel.grumbach@intel.com>
> Cc: Berg, Johannes <johannes.berg@intel.com>; Korenblit, Miriam Rachel
> <miriam.rachel.korenblit@intel.com>; linux-wireless@vger.kernel.org;
> regressions@lists.linux.dev
> 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
[-- Attachment #2: 0001-wifi-iwlwifi-mvm-properly-check-the-FW-version.patch --]
[-- Type: application/octet-stream, Size: 1807 bytes --]
From 825098f2de2bc63e5ce180213d9fad040f644fb2 Mon Sep 17 00:00:00 2001
From: Miri Korenblit <miriam.rachel.korenblit@intel.com>
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 <miriam.rachel.korenblit@intel.com>
---
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
^ permalink raw reply related [flat|nested] 3+ messages in thread