From: Juergen Gross Date: Wed, 15 Feb 2017 11:11:12 +0000 (+0100) Subject: libxl: correct xenstore entry for empty cdrom X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=a085f0ca12a3db203f9dcfc96dc3722d0f0f3fbf;p=people%2Fiwj%2Fxen.git libxl: correct xenstore entry for empty cdrom 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 Acked-by: Wei Liu --- diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 0386f28e0d..acf714e1f9 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -2255,7 +2255,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));