Re: [PROBLEM] c5.metal on AWS fails to kexec after "PCI: Explicitly put devices into D0 when initializing"
From: Mario Limonciello
Date: Wed Feb 25 2026 - 00:43:27 EST
On 2/24/2026 11:21 PM, Matthew Ruffell wrote:
Hi Mario,
Matthew,
Can you please try with this diff that applies my idea?
Thanks,
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 1f6fd7c372932..5955a273c9ba7 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -3196,6 +3196,7 @@ void pci_pm_init(struct pci_dev *dev)
}
poweron:
+ pci_clear_master(dev);
pci_pm_power_up_and_verify_state(dev);
pm_runtime_forbid(&dev->dev);
I applied this ontop of current head 7dff99b from 7.0-rc1.
c5.metal on AWS did not come back from a clean reboot. Looking at the serial
console shows the exact same behaviour as attempting a kexec. It gets stuck
trying to locate the rootfs, because the NVMe drive has no bus master bit set.
That is also maybe not a viable path to take.
OK thanks for checking it.
Could you figure out at which point it hangs? What confuses me is why doesn't the call for pci_set_master() in nvme_pci_enable() help?
I'm currently working on some instrumentation, will try get my results,
including a full dmesg capture, soon.
Thanks,
Matthew
Could you specifically decorate the calls to nvme_pci_enable() to see if the hang is before or after that call to pci_set_master()?