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 14:45:53 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0



On 12/24/2015 02:24 PM, Michael S. Tsirkin wrote:
On Thu, Dec 24, 2015 at 11:39:00AM +0800, Cao jin wrote:
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.

OK but how exactly did you test your patch that
a build break was missed?
Could you include some info about testing done
when you post patches?


Really really sorry about my carelessness, I just find compiling fail before this mail, really sorry about such kind of silly mistake. I know I have made many silly mistakes before, ashamed of these. I am working hard to avoid these silly mistake later.
Again, really sorry, and really thanks the time you spend on this.

Btw, I just thought maybe this patch could be splitted into 2 independent patches, just like v2 I sent.

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




.


--
Yours Sincerely,

Cao Jin





reply via email to

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