> On 11-Jul-2023, at 12:33 PM, Ani Sinha <anisinha@redhat.com> wrote:
>
> This change is cosmetic. A comment is added explaining why we need to check for
> the availability of function 0 when we hotplug a device.
>
> CC: mst@redhat.com
> CC: mjt@tls.msk.ru
> Signed-off-by: Ani Sinha <anisinha@redhat.com>
Can we merge this while we are still in rc0?
> ---
> hw/pci/pci.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/hw/pci/pci.c b/hw/pci/pci.c
> index e2eb4c3b4a..6db18dfe46 100644
> --- a/hw/pci/pci.c
> +++ b/hw/pci/pci.c
> @@ -1180,9 +1180,14 @@ static PCIDevice *do_pci_register_device(PCIDevice *pci_dev,
> PCI_SLOT(devfn), PCI_FUNC(devfn), name,
> bus->devices[devfn]->name, bus->devices[devfn]->qdev.id);
> return NULL;
> - } else if (dev->hotplugged &&
> - !pci_is_vf(pci_dev) &&
> - pci_get_function_0(pci_dev)) {
> + } /*
> + * Populating function 0 triggers a scan from the guest that
> + * exposes other non-zero functions. Hence we need to ensure that
> + * function 0 wasn't added yet.
> + */
> + else if (dev->hotplugged &&
> + !pci_is_vf(pci_dev) &&
> + pci_get_function_0(pci_dev)) {
> error_setg(errp, "PCI: slot %d function 0 already occupied by %s,"
> " new func %s cannot be exposed to guest.",
> PCI_SLOT(pci_get_function_0(pci_dev)->devfn),
> --
> 2.39.1
>