File 58a59f4b-libxl-correct-xenstore-entry-for-empty-cdrom.patch of Package xen.4684
References: bsc#1022703
Subject: libxl: correct xenstore entry for empty cdrom
From: Juergen Gross jgross@suse.com Wed Feb 15 12:11:12 2017 +0100
Date: Wed Apr 5 14:23:19 2017 +0100:
Git: e0b94996972e4694f750a6478269595d083bb8e2
Specifying an empty cdrom device will result in a Xenstore entry
params = aio:(null)
as the physical device path isn't existing. This lets a domain booted
via OVMF hang as OVMF is checking for "aio:" only in order to detect
the empty cdrom case.
Use an empty string for the physical device path in this case. As a
cdrom device for HVM is always backed by qdisk we only need to cover this
backend.
Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
(cherry picked from commit a085f0ca12a3db203f9dcfc96dc3722d0f0f3fbf)
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index f66f440..a4bc8f3 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -2524,7 +2524,8 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid,
case LIBXL_DISK_BACKEND_QDISK:
flexarray_append(back, "params");
flexarray_append(back, GCSPRINTF("%s:%s",
- libxl__device_disk_string_of_format(disk->format), disk->pdev_path));
+ libxl__device_disk_string_of_format(disk->format),
+ disk->pdev_path ? : ""));
if (libxl_defbool_val(disk->colo_enable)) {
flexarray_append(back, "colo-host");
flexarray_append(back, libxl__sprintf(gc, "%s", disk->colo_host));