linux/drivers/pci/msi
Farhan Ali 231c7a57d1 PCI/MSI: Enable memory decoding before restoring MSI-X messages
The current MSI-X restoration path assumes the Command register Memory bit
is enabled when writing MSI-X messages. But it's possible the last saved
and restored state of a device may not have the Memory bit enabled, even if
a device driver later enables Memory bit and MSI-X. Attempting to access
Memory space without Memory bit enabled can lead to Unsupported Request
(UR) from the device. Fix this by enabling Memory bit and restore it
afterwards.

Fixes: 41017f0cac ("[PATCH] PCI: MSI(X) save/restore for suspend/resume")
Signed-off-by: Farhan Ali <alifm@linux.ibm.com>
[bhelgaas: comment]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Thomas Gleixner <tglx@kernel.org>
Reviewed-by: Niklas Schnelle <schnelle@linux.ibm.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260805165518.794-6-alifm@linux.ibm.com
2026-08-12 17:27:13 -05:00
..
api.c PCI/MSI: Clarify pci_free_irq_vectors() usage for managed devices 2026-02-23 09:01:20 -06:00
irqdomain.c irqchip/gic-v5: Add ACPI ITS probing 2026-01-27 15:31:42 +01:00
legacy.c PCI/MSI: Prevent UAF in error path 2022-01-21 02:14:46 +01:00
Makefile PCI/MSI: Move pci_disable_msi() to api.c 2022-11-17 15:15:20 +01:00
msi.c PCI/MSI: Enable memory decoding before restoring MSI-X messages 2026-08-12 17:27:13 -05:00
msi.h PCI/MSI: Size device MSI domain with the maximum number of vectors 2025-06-04 11:19:25 +02:00
pcidev_msi.c PCI/MSI: Convert the boolean no_64bit_msi flag to a DMA address mask 2026-01-31 01:11:48 +01:00