File e1459c1f-nic-devid.patch of Package libvirt.openSUSE_13.1_Update

commit e1459c1fe88068f231bad254733b29287c28d517
Author: Stefan Bader <stefan.bader@canonical.com>
Date:   Wed Jan 8 11:39:19 2014 +0100

    libxl: Fix devid init in libxlMakeNicList
    
    This basically reverts commit ba64b97134a6129a48684f22f31be92c3b6eef96
    "libxl: Allow libxl to set NIC devid". However assigning devid's
    before calling libxlMakeNic does not work as that is calling
    libxl_device_nic_init which sets it back to -1.
    Right now auto-assignment only works in the hotplug case. But even if
    that would be fixed at some point (if that is possible at all), this
    would add a weird dependency between Xen and libvirt versions.
    The change here should accept any auto-assignment that makes it into
    libxl_device_nic_init. My understanding is that a caller always is
    allowed to make the devid choice itself. And assuming libxlMakeNicList
    is only used on domain creation, a sequential numbering should be ok.
    
    Signed-off-by: Stefan Bader <stefan.bader@canonical.com>

Index: libvirt-1.1.2/src/libxl/libxl_conf.c
===================================================================
--- libvirt-1.1.2.orig/src/libxl/libxl_conf.c
+++ libvirt-1.1.2/src/libxl/libxl_conf.c
@@ -878,6 +878,13 @@ libxlMakeNicList(virDomainDefPtr def,  l
     for (i = 0; i < nnics; i++) {
         if (libxlMakeNic(def, l_nics[i], &x_nics[i]))
             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;
     }
 
     d_config->nics = x_nics;
openSUSE Build Service is sponsored by