Re: [PATCH v3 03/10] PCI: Allow per function PCI slots
From: Cédric Le Goater
Date: Wed Sep 17 2025 - 02:23:28 EST
Hi Farhan,
Hi Cedric,
Thanks for pointing this out. I missed that dev->slot could be NULL and so the per_func_slot check should be done after the check for !dev->slot. I tried this change on top of the patch in an x86_64 VM and was able to boot the VM without the oops.
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 70296d3b1cfc..3631f7faa0cf 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -5061,10 +5061,9 @@ static int pci_reset_hotplug_slot(struct hotplug_slot *hotplug, bool probe)
static int pci_dev_reset_slot_function(struct pci_dev *dev, bool probe)
{
- if (dev->multifunction && !dev->slot->per_func_slot)
- return -ENOTTY;
if (dev->subordinate || !dev->slot ||
- dev->dev_flags & PCI_DEV_FLAGS_NO_BUS_RESET)
+ dev->dev_flags & PCI_DEV_FLAGS_NO_BUS_RESET ||
+ (dev->multifunction && !dev->slot->per_func_slot))
return -ENOTTY;
All good.
I have pushed the Linux branch I use for vfio :
https://github.com/legoater/linux/commits/vfio/
These commits have small changes :
PCI: Allow per function PCI slots
vfio-pci/zdev: Add a device feature for error information
Thanks,
C.