aboutsummaryrefslogtreecommitdiff
path: root/system/xen/patches
diff options
context:
space:
mode:
authorMario Preksavec <mario@slackware.hr>2014-11-10 01:32:11 +0100
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2014-11-15 08:30:43 +0700
commit6577920068e0232b8a8ed7f97f679e7ed7efa932 (patch)
treed0b0894c1cf18c8255eae212a6ac705fc923c8c8 /system/xen/patches
parentaca2f3e6aeec45d3fe772ddefc8c5646f8c38079 (diff)
system/xen: Local attach support for PHY backends using scripts
Diffstat (limited to 'system/xen/patches')
-rw-r--r--system/xen/patches/local_attach_support_for_phy.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/system/xen/patches/local_attach_support_for_phy.patch b/system/xen/patches/local_attach_support_for_phy.patch
new file mode 100644
index 0000000000000..41fe63984559a
--- /dev/null
+++ b/system/xen/patches/local_attach_support_for_phy.patch
@@ -0,0 +1,58 @@
+commit 3bcf91cbbd9a18db9ae7d594ffde7979774ed512
+Author: Roger Pau Monne <roger.pau@xxxxxxxxxx>
+Date: Wed Feb 12 11:15:17 2014 +0100
+
+ libxl: local attach support for PHY backends using scripts
+
+ Allow disks using the PHY backend to locally attach if using a script.
+
+ Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx>
+ Suggested-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
+
+
+Index: xen-4.3.2-testing/tools/libxl/libxl.c
+===================================================================
+--- xen-4.3.2-testing.orig/tools/libxl/libxl.c
++++ xen-4.3.2-testing/tools/libxl/libxl.c
+@@ -2604,6 +2604,16 @@ void libxl__device_disk_local_initiate_a
+
+ switch (disk->backend) {
+ case LIBXL_DISK_BACKEND_PHY:
++ if (disk->script != NULL) {
++ LOG(DEBUG, "trying to locally attach PHY device %s with script %s",
++ disk->pdev_path, disk->script);
++ libxl__prepare_ao_device(ao, &dls->aodev);
++ dls->aodev.callback = local_device_attach_cb;
++ device_disk_add(egc, LIBXL_TOOLSTACK_DOMID, disk,
++ &dls->aodev, libxl__alloc_vdev,
++ (void *) blkdev_start);
++ return;
++ }
+ LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching PHY disk %s",
+ disk->pdev_path);
+ dev = disk->pdev_path;
+@@ -2683,7 +2693,7 @@ static void local_device_attach_cb(libxl
+ }
+
+ dev = GCSPRINTF("/dev/%s", disk->vdev);
+- LOG(DEBUG, "locally attaching qdisk %s", dev);
++ LOG(DEBUG, "locally attached disk %s", dev);
+
+ rc = libxl__device_from_disk(gc, LIBXL_TOOLSTACK_DOMID, disk, &device);
+ if (rc < 0)
+@@ -2723,6 +2733,7 @@ void libxl__device_disk_local_initiate_d
+ if (!dls->diskpath) goto out;
+
+ switch (disk->backend) {
++ case LIBXL_DISK_BACKEND_PHY:
+ case LIBXL_DISK_BACKEND_QDISK:
+ if (disk->vdev != NULL) {
+ GCNEW(device);
+@@ -2740,7 +2751,6 @@ void libxl__device_disk_local_initiate_d
+ /* disk->vdev == NULL; fall through */
+ default:
+ /*
+- * Nothing to do for PHYSTYPE_PHY.
+ * For other device types assume that the blktap2 process is
+ * needed by the soon to be started domain and do nothing.
+ */