[PATCH v4 7/9] pcie_sriov: Release VFs failed to realize

Akihiko Odaki posted 9 patches 9 months, 2 weeks ago
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Eduardo Habkost <eduardo@habkost.net>, Akihiko Odaki <akihiko.odaki@daynix.com>, Sriram Yagnaraman <sriram.yagnaraman@est.tech>, Jason Wang <jasowang@redhat.com>, Keith Busch <kbusch@kernel.org>, Klaus Jensen <its@irrelevant.dk>, Alex Williamson <alex.williamson@redhat.com>, "Cédric Le Goater" <clg@redhat.com>
There is a newer version of this series
[PATCH v4 7/9] pcie_sriov: Release VFs failed to realize
Posted by Akihiko Odaki 9 months, 2 weeks ago
Release VFs failed to realize just as we do in unregister_vfs().

Fixes: 7c0fa8dff811 ("pcie: Add support for Single Root I/O Virtualization (SR/IOV)")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
 hw/pci/pcie_sriov.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/hw/pci/pcie_sriov.c b/hw/pci/pcie_sriov.c
index 9ba34cf8f8ed..9d668b8d6c17 100644
--- a/hw/pci/pcie_sriov.c
+++ b/hw/pci/pcie_sriov.c
@@ -91,6 +91,8 @@ bool pcie_sriov_pf_init(PCIDevice *dev, uint16_t offset,
         vf->exp.sriov_vf.vf_number = i;
 
         if (!qdev_realize(&vf->qdev, bus, errp)) {
+            object_unparent(OBJECT(vf));
+            object_unref(vf);
             unrealize_vfs(dev, i);
             return false;
         }

-- 
2.43.0
Re: [PATCH v4 7/9] pcie_sriov: Release VFs failed to realize
Posted by Michael S. Tsirkin 9 months, 2 weeks ago
On Wed, Feb 14, 2024 at 02:13:45PM +0900, Akihiko Odaki wrote:
> Release VFs failed to realize just as we do in unregister_vfs().
> 
> Fixes: 7c0fa8dff811 ("pcie: Add support for Single Root I/O Virtualization (SR/IOV)")
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>

Is this fixing an old bug or a bug introduced by a previous patch?


> ---
>  hw/pci/pcie_sriov.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/hw/pci/pcie_sriov.c b/hw/pci/pcie_sriov.c
> index 9ba34cf8f8ed..9d668b8d6c17 100644
> --- a/hw/pci/pcie_sriov.c
> +++ b/hw/pci/pcie_sriov.c
> @@ -91,6 +91,8 @@ bool pcie_sriov_pf_init(PCIDevice *dev, uint16_t offset,
>          vf->exp.sriov_vf.vf_number = i;
>  
>          if (!qdev_realize(&vf->qdev, bus, errp)) {
> +            object_unparent(OBJECT(vf));
> +            object_unref(vf);
>              unrealize_vfs(dev, i);
>              return false;
>          }
> 
> -- 
> 2.43.0
Re: [PATCH v4 7/9] pcie_sriov: Release VFs failed to realize
Posted by Akihiko Odaki 9 months, 2 weeks ago
On 2024/02/14 16:54, Michael S. Tsirkin wrote:
> On Wed, Feb 14, 2024 at 02:13:45PM +0900, Akihiko Odaki wrote:
>> Release VFs failed to realize just as we do in unregister_vfs().
>>
>> Fixes: 7c0fa8dff811 ("pcie: Add support for Single Root I/O Virtualization (SR/IOV)")
>> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> 
> Is this fixing an old bug or a bug introduced by a previous patch?

Old bug, present since: commit 7c0fa8dff811 ("pcie: Add support for 
Single Root I/O Virtualization (SR/IOV)")