[libvirt] [PATCH 1/2] libxl: support syntax <interface type="hostdev">

Chunyan Liu cyliu at suse.com
Thu May 8 06:44:04 UTC 2014


Signed-off-by: Chunyan Liu <cyliu at suse.com>
---
 src/libxl/libxl_conf.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 298c8a1..b7fed7f 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -921,25 +921,31 @@ static int
 libxlMakeNicList(virDomainDefPtr def,  libxl_domain_config *d_config)
 {
     virDomainNetDefPtr *l_nics = def->nets;
-    int nnics = def->nnets;
+    size_t nnics = def->nnets;
     libxl_device_nic *x_nics;
-    size_t i;
+    size_t i, nvnics = 0;
 
     if (VIR_ALLOC_N(x_nics, nnics) < 0)
         return -1;
 
     for (i = 0; i < nnics; i++) {
-        if (libxlMakeNic(def, l_nics[i], &x_nics[i]))
+        if (l_nics[i]->type == VIR_DOMAIN_NET_TYPE_HOSTDEV)
+            continue;
+
+        if (libxlMakeNic(def, l_nics[i], &x_nics[nvnics]))
             goto error;
         /*
          * The devid (at least right now) will not get initialized by
          * libxl in the setup case but is required for starting the
          * device-model.
          */
-        if (x_nics[i].devid < 0)
-            x_nics[i].devid = i;
+        if (x_nics[nvnics].devid < 0)
+            x_nics[nvnics].devid = nvnics;
+
+        nvnics++;
     }
 
+    VIR_SHRINK_N(x_nics, nnics, nnics - nvnics);
     d_config->nics = x_nics;
     d_config->num_nics = nnics;
 
-- 
1.8.4.5




More information about the libvir-list mailing list