qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] change type of pci_bridge_initfn() to void


From: Cao jin
Subject: Re: [Qemu-devel] [PATCH] change type of pci_bridge_initfn() to void
Date: Thu, 24 Dec 2015 11:39:00 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0

Hi mst

On 12/23/2015 09:38 PM, Michael S. Tsirkin wrote:
On Wed, Dec 23, 2015 at 04:53:21PM +0800, Cao jin wrote:
Hi mst
friendly ping again...

This does not work since then this function can not be
used as an init callback, and this is how
dec uses it.


thanks very much for your time:) I was planning to separate supporting function & device convert to realize() into different patches, but seems it is not suitable for this case. then, I will put "dec: convert to realize" into this patch.

On 12/17/2015 09:53 AM, Cao jin wrote:
Ping

On 11/30/2015 05:19 PM, Michael S. Tsirkin wrote:
On Mon, Nov 30, 2015 at 05:00:44PM +0800, Cao jin wrote:
It always return 0(success), change its type to void, and modify its
caller.
Doing this can reduce a error path of its caller, and it is also good
when
convert init() to realize()

Signed-off-by: Cao jin <address@hidden>

Sounds good, but pls remember to ping me after 2.5 is out.

---
  hw/pci-bridge/i82801b11.c          | 5 +----
  hw/pci-bridge/ioh3420.c            | 6 +-----
  hw/pci-bridge/pci_bridge_dev.c     | 8 +++-----
  hw/pci-bridge/xio3130_downstream.c | 6 +-----
  hw/pci-bridge/xio3130_upstream.c   | 6 +-----
  hw/pci-host/apb.c                  | 5 +----
  hw/pci/pci_bridge.c                | 3 +--
  include/hw/pci/pci_bridge.h        | 2 +-
  8 files changed, 10 insertions(+), 31 deletions(-)

leave DEC 21154 PCI-PCI bridge unchanged because it is better to
handle it
when convert init() to realize().

diff --git a/hw/pci-bridge/i82801b11.c b/hw/pci-bridge/i82801b11.c
index 7e79bc0..b21bc2c 100644
--- a/hw/pci-bridge/i82801b11.c
+++ b/hw/pci-bridge/i82801b11.c
@@ -61,10 +61,7 @@ static int i82801b11_bridge_initfn(PCIDevice *d)
  {
      int rc;

-    rc = pci_bridge_initfn(d, TYPE_PCI_BUS);
-    if (rc < 0) {
-        return rc;
-    }
+    pci_bridge_initfn(d, TYPE_PCI_BUS);

      rc = pci_bridge_ssvid_init(d, I82801ba_SSVID_OFFSET,
                                 I82801ba_SSVID_SVID,
I82801ba_SSVID_SSID);
diff --git a/hw/pci-bridge/ioh3420.c b/hw/pci-bridge/ioh3420.c
index cce2fdd..eead195 100644
--- a/hw/pci-bridge/ioh3420.c
+++ b/hw/pci-bridge/ioh3420.c
@@ -97,11 +97,7 @@ static int ioh3420_initfn(PCIDevice *d)
      PCIESlot *s = PCIE_SLOT(d);
      int rc;

-    rc = pci_bridge_initfn(d, TYPE_PCIE_BUS);
-    if (rc < 0) {
-        return rc;
-    }
-
+    pci_bridge_initfn(d, TYPE_PCIE_BUS);
      pcie_port_init_reg(d);

      rc = pci_bridge_ssvid_init(d, IOH_EP_SSVID_OFFSET,
diff --git a/hw/pci-bridge/pci_bridge_dev.c
b/hw/pci-bridge/pci_bridge_dev.c
index 26aded9..bc3e1b7 100644
--- a/hw/pci-bridge/pci_bridge_dev.c
+++ b/hw/pci-bridge/pci_bridge_dev.c
@@ -52,10 +52,8 @@ static int pci_bridge_dev_initfn(PCIDevice *dev)
      PCIBridgeDev *bridge_dev = PCI_BRIDGE_DEV(dev);
      int err;

-    err = pci_bridge_initfn(dev, TYPE_PCI_BUS);
-    if (err) {
-        goto bridge_error;
-    }
+    pci_bridge_initfn(dev, TYPE_PCI_BUS);
+
      if (bridge_dev->flags & (1 << PCI_BRIDGE_DEV_F_SHPC_REQ)) {
          dev->config[PCI_INTERRUPT_PIN] = 0x1;
          memory_region_init(&bridge_dev->bar, OBJECT(dev), "shpc-bar",
@@ -94,7 +92,7 @@ slotid_error:
      }
  shpc_error:
      pci_bridge_exitfn(dev);
-bridge_error:
+
      return err;
  }

diff --git a/hw/pci-bridge/xio3130_downstream.c
b/hw/pci-bridge/xio3130_downstream.c
index 86b7970..012daf3 100644
--- a/hw/pci-bridge/xio3130_downstream.c
+++ b/hw/pci-bridge/xio3130_downstream.c
@@ -61,11 +61,7 @@ static int xio3130_downstream_initfn(PCIDevice *d)
      PCIESlot *s = PCIE_SLOT(d);
      int rc;

-    rc = pci_bridge_initfn(d, TYPE_PCIE_BUS);
-    if (rc < 0) {
-        return rc;
-    }
-
+    pci_bridge_initfn(d, TYPE_PCIE_BUS);
      pcie_port_init_reg(d);

      rc = msi_init(d, XIO3130_MSI_OFFSET, XIO3130_MSI_NR_VECTOR,
diff --git a/hw/pci-bridge/xio3130_upstream.c
b/hw/pci-bridge/xio3130_upstream.c
index eada582..434c8fd 100644
--- a/hw/pci-bridge/xio3130_upstream.c
+++ b/hw/pci-bridge/xio3130_upstream.c
@@ -56,11 +56,7 @@ static int xio3130_upstream_initfn(PCIDevice *d)
      PCIEPort *p = PCIE_PORT(d);
      int rc;

-    rc = pci_bridge_initfn(d, TYPE_PCIE_BUS);
-    if (rc < 0) {
-        return rc;
-    }
-
+    pci_bridge_initfn(d, TYPE_PCIE_BUS);
      pcie_port_init_reg(d);

      rc = msi_init(d, XIO3130_MSI_OFFSET, XIO3130_MSI_NR_VECTOR,
diff --git a/hw/pci-host/apb.c b/hw/pci-host/apb.c
index 599768e..e9117b9 100644
--- a/hw/pci-host/apb.c
+++ b/hw/pci-host/apb.c
@@ -636,10 +636,7 @@ static int apb_pci_bridge_initfn(PCIDevice *dev)
  {
      int rc;

-    rc = pci_bridge_initfn(dev, TYPE_PCI_BUS);
-    if (rc < 0) {
-        return rc;
-    }
+    pci_bridge_initfn(dev, TYPE_PCI_BUS);

      /*
       * command register:
diff --git a/hw/pci/pci_bridge.c b/hw/pci/pci_bridge.c
index 40c97b1..5c30795 100644
--- a/hw/pci/pci_bridge.c
+++ b/hw/pci/pci_bridge.c
@@ -332,7 +332,7 @@ void pci_bridge_reset(DeviceState *qdev)
  }

  /* default qdev initialization function for PCI-to-PCI bridge */
-int pci_bridge_initfn(PCIDevice *dev, const char *typename)
+void pci_bridge_initfn(PCIDevice *dev, const char *typename)
  {
      PCIBus *parent = dev->bus;
      PCIBridge *br = PCI_BRIDGE(dev);
@@ -378,7 +378,6 @@ int pci_bridge_initfn(PCIDevice *dev, const char
*typename)
      br->windows = pci_bridge_region_init(br);
      QLIST_INIT(&sec_bus->child);
      QLIST_INSERT_HEAD(&parent->child, sec_bus, sibling);
-    return 0;
  }

  /* default qdev clean up function for PCI-to-PCI bridge */
diff --git a/include/hw/pci/pci_bridge.h b/include/hw/pci/pci_bridge.h
index 93b621c..ed4aff6 100644
--- a/include/hw/pci/pci_bridge.h
+++ b/include/hw/pci/pci_bridge.h
@@ -48,7 +48,7 @@ void pci_bridge_disable_base_limit(PCIDevice *dev);
  void pci_bridge_reset_reg(PCIDevice *dev);
  void pci_bridge_reset(DeviceState *qdev);

-int pci_bridge_initfn(PCIDevice *pci_dev, const char *typename);
+void pci_bridge_initfn(PCIDevice *pci_dev, const char *typename);
  void pci_bridge_exitfn(PCIDevice *pci_dev);


--
2.1.0




.



--
Yours Sincerely,

Cao Jin



.


--
Yours Sincerely,

Cao Jin





reply via email to

[Prev in Thread] Current Thread [Next in Thread]