On 08/10/2012 12:23 PM, Shradha Shah wrote: > Just code movement no functional changes here. This makes the code reusable > > Signed-off-by: Shradha Shah <sshah@xxxxxxxxxxxxxx> > --- > src/network/bridge_driver.c | 86 ++++++++++++++++++++++++++---------------- > 1 files changed, 53 insertions(+), 33 deletions(-) Nearly pure code movement. ACK. > > diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c > index a5046f1..f128bd0 100644 > --- a/src/network/bridge_driver.c > +++ b/src/network/bridge_driver.c > @@ -2728,6 +2728,56 @@ int networkRegister(void) { > * "backend" function table. > */ > > +/* networkCreateInterfacePool: > + * @netdef: the original NetDef from the network > + * > + * Creates an implicit interface pool of VF's when a PF dev is given > + */ > +static int > +networkCreateInterfacePool(virNetworkDefPtr netdef) { > + unsigned int num_virt_fns = 0; > + char **vfname = NULL; > + int ret = -1, ii = 0; > + > + if ((virNetDevGetVirtualFunctions(netdef->forwardPfs->dev, > + &vfname, &num_virt_fns)) < 0) { > + virReportError(VIR_ERR_INTERNAL_ERROR, > + _("Could not get Virtual functions on %s"), > + netdef->forwardPfs->dev); > + goto finish; > + } > + > + if (num_virt_fns == 0) { > + virReportError(VIR_ERR_INTERNAL_ERROR, > + _("No Vf's present on SRIOV PF %s"), > + netdef->forwardPfs->dev); > + goto finish; > + } > + > + if ((VIR_ALLOC_N(netdef->forwardIfs, num_virt_fns)) < 0) { > + virReportOOMError(); > + goto finish; > + } > + > + netdef->nForwardIfs = num_virt_fns; > + > + for (ii = 0; ii < netdef->nForwardIfs; ii++) { > + netdef->forwardIfs[ii].dev = strdup(vfname[ii]); > + if (!netdef->forwardIfs[ii].dev) { > + virReportOOMError(); > + goto finish; > + } > + netdef->forwardIfs[ii].usageCount = 0; > + } > + > + ret = 0; > +finish: > + for (ii = 0; ii < num_virt_fns; ii++) > + VIR_FREE(vfname[ii]); > + VIR_FREE(vfname); > + return ret; > +} > + > /* networkAllocateActualDevice: > * @iface: the original NetDef from the domain > * > @@ -2746,8 +2796,6 @@ networkAllocateActualDevice(virDomainNetDefPtr iface) > virNetworkObjPtr network; > virNetworkDefPtr netdef; > virPortGroupDefPtr portgroup; > - unsigned int num_virt_fns = 0; > - char **vfname = NULL; > int ii; > int ret = -1; > > @@ -2894,36 +2942,11 @@ networkAllocateActualDevice(virDomainNetDefPtr iface) > */ > if (netdef->forwardType == VIR_NETWORK_FORWARD_PASSTHROUGH) { > if ((netdef->nForwardPfs > 0) && (netdef->nForwardIfs <= 0)) { > - if ((virNetDevGetVirtualFunctions(netdef->forwardPfs->dev, > - &vfname, &num_virt_fns)) < 0) { > - virReportError(VIR_ERR_INTERNAL_ERROR, > - _("Could not get Virtual functions on %s"), > - netdef->forwardPfs->dev); > + if ((networkCreateInterfacePool(netdef)) < 0) { > + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > + _("Could not Interface Pool")); > goto cleanup; > } > - > - if (num_virt_fns == 0) { > - virReportError(VIR_ERR_INTERNAL_ERROR, > - _("No Vf's present on SRIOV PF %s"), > - netdef->forwardPfs->dev); > - goto cleanup; > - } > - > - if ((VIR_ALLOC_N(netdef->forwardIfs, num_virt_fns)) < 0) { > - virReportOOMError(); > - goto cleanup; > - } > - > - netdef->nForwardIfs = num_virt_fns; > - > - for (ii = 0; ii < netdef->nForwardIfs; ii++) { > - netdef->forwardIfs[ii].dev = strdup(vfname[ii]); > - if (!netdef->forwardIfs[ii].dev) { > - virReportOOMError(); > - goto cleanup; > - } > - netdef->forwardIfs[ii].usageCount = 0; > - } > } > > /* pick first dev with 0 usageCount */ > @@ -2976,9 +2999,6 @@ networkAllocateActualDevice(virDomainNetDefPtr iface) > > ret = 0; > cleanup: > - for (ii = 0; ii < num_virt_fns; ii++) > - VIR_FREE(vfname[ii]); > - VIR_FREE(vfname); > if (network) > virNetworkObjUnlock(network); > if (ret < 0) { -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list