[PATCH v8 05/15] hw/pci: Always call pcie_sriov_pf_reset()

Akihiko Odaki posted 15 patches 1 year, 4 months ago
There is a newer version of this series
[PATCH v8 05/15] hw/pci: Always call pcie_sriov_pf_reset()
Posted by Akihiko Odaki 1 year, 4 months ago
Call pcie_sriov_pf_reset() from pci_do_device_reset() just as we do
for msi_reset() and msix_reset() to prevent duplicating code for each
SR-IOV PF.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
 hw/net/igb.c   | 2 --
 hw/nvme/ctrl.c | 4 ----
 hw/pci/pci.c   | 1 +
 3 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/hw/net/igb.c b/hw/net/igb.c
index 9345506f81ec..9b37523d6df8 100644
--- a/hw/net/igb.c
+++ b/hw/net/igb.c
@@ -488,12 +488,10 @@ static void igb_pci_uninit(PCIDevice *pci_dev)
 
 static void igb_qdev_reset_hold(Object *obj)
 {
-    PCIDevice *d = PCI_DEVICE(obj);
     IGBState *s = IGB(obj);
 
     trace_e1000e_cb_qdev_reset_hold();
 
-    pcie_sriov_pf_reset(d);
     igb_core_reset(&s->core);
 }
 
diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
index 7c0d3f108724..c1af4b87b34a 100644
--- a/hw/nvme/ctrl.c
+++ b/hw/nvme/ctrl.c
@@ -7114,10 +7114,6 @@ static void nvme_ctrl_reset(NvmeCtrl *n, NvmeResetType rst)
                 sctrl = &n->sec_ctrl_list.sec[i];
                 nvme_virt_set_state(n, le16_to_cpu(sctrl->scid), false);
             }
-
-            if (rst != NVME_RESET_CONTROLLER) {
-                pcie_sriov_pf_reset(pci_dev);
-            }
         }
 
         if (rst != NVME_RESET_CONTROLLER) {
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 6496d027ca61..e7a39cb203ae 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -409,6 +409,7 @@ static void pci_do_device_reset(PCIDevice *dev)
 
     msi_reset(dev);
     msix_reset(dev);
+    pcie_sriov_pf_reset(dev);
 }
 
 /*

-- 
2.43.2
RE: [PATCH v8 05/15] hw/pci: Always call pcie_sriov_pf_reset()
Posted by Sriram Yagnaraman 1 year, 4 months ago

> -----Original Message-----
> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> Sent: Wednesday, 28 February 2024 12:33
> To: Philippe Mathieu-Daudé <philmd@linaro.org>; Michael S. Tsirkin
> <mst@redhat.com>; Marcel Apfelbaum <marcel.apfelbaum@gmail.com>;
> Alex Williamson <alex.williamson@redhat.com>; Cédric Le Goater
> <clg@redhat.com>; Paolo Bonzini <pbonzini@redhat.com>; Daniel P.
> Berrangé <berrange@redhat.com>; Eduardo Habkost
> <eduardo@habkost.net>; Sriram Yagnaraman
> <sriram.yagnaraman@ericsson.com>; Jason Wang <jasowang@redhat.com>;
> Keith Busch <kbusch@kernel.org>; Klaus Jensen <its@irrelevant.dk>; Markus
> Armbruster <armbru@redhat.com>
> Cc: qemu-devel@nongnu.org; qemu-block@nongnu.org; Akihiko Odaki
> <akihiko.odaki@daynix.com>
> Subject: [PATCH v8 05/15] hw/pci: Always call pcie_sriov_pf_reset()
> 
> Call pcie_sriov_pf_reset() from pci_do_device_reset() just as we do for
> msi_reset() and msix_reset() to prevent duplicating code for each SR-IOV PF.
> 
> Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
> ---
>  hw/net/igb.c   | 2 --
>  hw/nvme/ctrl.c | 4 ----
>  hw/pci/pci.c   | 1 +
>  3 files changed, 1 insertion(+), 6 deletions(-)
> 
> diff --git a/hw/net/igb.c b/hw/net/igb.c index 9345506f81ec..9b37523d6df8
> 100644
> --- a/hw/net/igb.c
> +++ b/hw/net/igb.c
> @@ -488,12 +488,10 @@ static void igb_pci_uninit(PCIDevice *pci_dev)
> 
>  static void igb_qdev_reset_hold(Object *obj)  {
> -    PCIDevice *d = PCI_DEVICE(obj);
>      IGBState *s = IGB(obj);
> 
>      trace_e1000e_cb_qdev_reset_hold();
> 
> -    pcie_sriov_pf_reset(d);
>      igb_core_reset(&s->core);
>  }
> 
> diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c index
> 7c0d3f108724..c1af4b87b34a 100644
> --- a/hw/nvme/ctrl.c
> +++ b/hw/nvme/ctrl.c
> @@ -7114,10 +7114,6 @@ static void nvme_ctrl_reset(NvmeCtrl *n,
> NvmeResetType rst)
>                  sctrl = &n->sec_ctrl_list.sec[i];
>                  nvme_virt_set_state(n, le16_to_cpu(sctrl->scid), false);
>              }
> -
> -            if (rst != NVME_RESET_CONTROLLER) {
> -                pcie_sriov_pf_reset(pci_dev);
> -            }
>          }
> 
>          if (rst != NVME_RESET_CONTROLLER) { diff --git a/hw/pci/pci.c
> b/hw/pci/pci.c index 6496d027ca61..e7a39cb203ae 100644
> --- a/hw/pci/pci.c
> +++ b/hw/pci/pci.c
> @@ -409,6 +409,7 @@ static void pci_do_device_reset(PCIDevice *dev)
> 
>      msi_reset(dev);
>      msix_reset(dev);
> +    pcie_sriov_pf_reset(dev);
>  }
> 
>  /*
> 
> --
> 2.43.2

Assuming change of my mail address from sriram.yagnaraman@est.tech to @ericsson.com is accepted,
Reviewed-by: Sriram Yagnaraman <sriram.yagnaraman@ericsson.com>