Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'pci-v6.16-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci

Pull PCI fixes from Bjorn Helgaas:

- Set up runtime PM even for devices that lack a PM Capability as we
did before 4d4c10f763d7 ("PCI: Explicitly put devices into D0 when
initializing"), which broke resume in some VFIO scenarios (Mario
Limonciello)

- Ignore pciehp Presence Detect Changed events caused by DPC, even if
they occur after a Data Link Layer State Changed event, to fix a VFIO
GPU passthrough regression in v6.13 (Lukas Wunner)

* tag 'pci-v6.16-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
PCI: pciehp: Ignore belated Presence Detect Changed caused by DPC
PCI/PM: Set up runtime PM even for devices without PCI PM

+4 -3
+1 -1
drivers/pci/hotplug/pciehp_hpc.c
··· 771 771 u16 ignored_events = PCI_EXP_SLTSTA_DLLSC; 772 772 773 773 if (!ctrl->inband_presence_disabled) 774 - ignored_events |= events & PCI_EXP_SLTSTA_PDC; 774 + ignored_events |= PCI_EXP_SLTSTA_PDC; 775 775 776 776 events &= ~ignored_events; 777 777 pciehp_ignore_link_change(ctrl, pdev, irq, ignored_events);
+3 -2
drivers/pci/pci.c
··· 3217 3217 /* find PCI PM capability in list */ 3218 3218 pm = pci_find_capability(dev, PCI_CAP_ID_PM); 3219 3219 if (!pm) 3220 - return; 3220 + goto poweron; 3221 3221 /* Check device's ability to generate PME# */ 3222 3222 pci_read_config_word(dev, pm + PCI_PM_PMC, &pmc); 3223 3223 3224 3224 if ((pmc & PCI_PM_CAP_VER_MASK) > 3) { 3225 3225 pci_err(dev, "unsupported PM cap regs version (%u)\n", 3226 3226 pmc & PCI_PM_CAP_VER_MASK); 3227 - return; 3227 + goto poweron; 3228 3228 } 3229 3229 3230 3230 dev->pm_cap = pm; ··· 3269 3269 pci_read_config_word(dev, PCI_STATUS, &status); 3270 3270 if (status & PCI_STATUS_IMM_READY) 3271 3271 dev->imm_ready = 1; 3272 + poweron: 3272 3273 pci_pm_power_up_and_verify_state(dev); 3273 3274 pm_runtime_forbid(&dev->dev); 3274 3275 pm_runtime_set_active(&dev->dev);