>From bc6a499ebcf102060987fb845c1450a38de441c7 Mon Sep 17 00:00:00 2001 From: Juergen Gross Date: Wed, 15 Feb 2017 12:11:12 +0100 Subject: [PATCH] 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 --- tools/libxl/libxl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index ac49df2..63de75c 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)); -- 2.1.4