diff options
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.patch | 37 |
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); + |