1.7 KiB
CVE-2024-56760
Description
In the Linux kernel, the following vulnerability has been resolved:PCI/MSI: Handle lack of irqdomain gracefullyAlexandre observed a warning emitted from pci_msi_setup_msi_irqs() on aRISCV platform which does not provide PCI/MSI support: WARNING: CPU: 1 PID: 1 at drivers/pci/msi/msi.h:121 pci_msi_setup_msi_irqs+0x2c/0x32 __pci_enable_msix_range+0x30c/0x596 pci_msi_setup_msi_irqs+0x2c/0x32 pci_alloc_irq_vectors_affinity+0xb8/0xe2RISCV uses hierarchical interrupt domains and correctly does not implementthe legacy fallback. The warning triggers from the legacy fallback stub.That warning is bogus as the PCI/MSI layer knows whether a PCI/MSI parentdomain is associated with the device or not. There is a check for MSI-X,which has a legacy assumption. But that legacy fallback assumption is onlyvalid when legacy support is enabled, but otherwise the check should simplyreturn -ENOTSUPP.Loongarch tripped over the same problem and blindly enabled legacy supportwithout implementing the legacy fallbacks. There are weak implementationswhich return an error, so the problem was papered over.Correct pci_msi_domain_supports() to evaluate the legacy mode and addthe missing supported check into the MSI enable path to complete it.
POC
Reference
No PoCs from references.