Re: [PATCH v3 03/10] PCI: Allow per function PCI slots

Cédric Le Goater
2025-09-17T06:22:04Z

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.