[libvirt] [PATCH v3 3/5] Reduce number of parameters to qemuDomainPCIAddressSetCreate

Martin Kletzander mkletzan at redhat.com
Tue Aug 16 11:59:21 UTC 2016


On Sun, Aug 14, 2016 at 04:14:55AM +0200, Tomasz Flendrich wrote:
>We can as well generate the number of buses inside that function. Fewer
>parameters will be useful when recalculating the pci address set on
>demand.
>---
> src/qemu/qemu_domain_address.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>

The code that this duplicates is kept just for now is is there a need
for it?  Looks OK, preliminary ACK.

>diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c
>index f916df2..ade4b64 100644
>--- a/src/qemu/qemu_domain_address.c
>+++ b/src/qemu/qemu_domain_address.c
>@@ -924,14 +924,24 @@ qemuDomainValidateDevicePCISlotsChipsets(virDomainDefPtr def,
>
> static virDomainPCIAddressSetPtr
> qemuDomainPCIAddressSetCreate(virDomainDefPtr def,
>-                              unsigned int nbuses,
>                               virQEMUCapsPtr qemuCaps,
>                               bool dryRun,
>                               bool assign)
> {
>     virDomainPCIAddressSetPtr addrs;
>+    int max_idx = -1;
>+    int nbuses = 0;
>     size_t i;
>
>+    for (i = 0; i < def->ncontrollers; i++) {
>+        if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) {
>+            if ((int) def->controllers[i]->idx > max_idx)
>+                max_idx = def->controllers[i]->idx;
>+        }
>+    }
>+
>+    nbuses = max_idx + 1;
>+
>     if ((addrs = virDomainPCIAddressSetAlloc(nbuses)) == NULL)
>         return NULL;
>
>@@ -1500,7 +1510,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,
>         virDomainDeviceInfo info;
>
>         /* 1st pass to figure out how many PCI bridges we need */
>-        if (!(addrs = qemuDomainPCIAddressSetCreate(def, nbuses, qemuCaps,
>+        if (!(addrs = qemuDomainPCIAddressSetCreate(def, qemuCaps,
>                                                     true, true)))
>             goto cleanup;
>
>@@ -1537,7 +1547,6 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,
>                 virDomainPCIAddressReserveNextSlot(addrs, &info, flags) < 0)
>                 goto cleanup;
>         }
>-        nbuses = addrs->nbuses;
>         virDomainPCIAddressSetFree(addrs);
>         addrs = NULL;
>
>@@ -1549,7 +1558,7 @@ qemuDomainAssignPCIAddresses(virDomainDefPtr def,
>     }
>
>     if (qemuDomainSupportsPCI(def, qemuCaps)) {
>-        if (!(addrs = qemuDomainPCIAddressSetCreate(def, nbuses, qemuCaps,
>+        if (!(addrs = qemuDomainPCIAddressSetCreate(def, qemuCaps,
>                                                     false, true)))
>             goto cleanup;
>
>--
>1.9.1
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20160816/54dc1522/attachment-0001.sig>


More information about the libvir-list mailing list