summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/xen-tools/files/xen-tools-4.1.1-libxl-tap.patch')
-rw-r--r--app-emulation/xen-tools/files/xen-tools-4.1.1-libxl-tap.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/app-emulation/xen-tools/files/xen-tools-4.1.1-libxl-tap.patch b/app-emulation/xen-tools/files/xen-tools-4.1.1-libxl-tap.patch
new file mode 100644
index 0000000..ba72c49
--- /dev/null
+++ b/app-emulation/xen-tools/files/xen-tools-4.1.1-libxl-tap.patch
@@ -0,0 +1,37 @@
+Index: xen-tools-4.1.1/tools/libxl/libxl_dm.c
+===================================================================
+--- xen-4.1.1.orig/tools/libxl/libxl_dm.c Tue Mar 15 10:14:27 2011 +0000
++++ xen-4.1.1/tools/libxl/libxl_dm.c Tue Mar 15 18:19:47 2011 +0000
+@@ -828,8 +828,29 @@
+ goto out;
+ }
+
+- if (nr_disks > 0 && !libxl__blktap_enabled(&gc))
+- ret = 1;
++ if (nr_disks > 0) {
++ int blktap_enabled = -1;
++ for (i = 0; i < nr_disks; i++) {
++ switch (disks[i].backend) {
++ case DISK_BACKEND_TAP:
++ if (blktap_enabled == -1)
++ blktap_enabled = libxl__blktap_enabled(&gc);
++ if (!blktap_enabled) {
++ ret = 1;
++ goto out;
++ }
++ break;
++
++ case DISK_BACKEND_QDISK:
++ ret = 1;
++ goto out;
++
++ case DISK_BACKEND_PHY:
++ case DISK_BACKEND_UNKNOWN:
++ break;
++ }
++ }
++ }
+
+ out:
+ libxl__free_all(&gc);
+