From: Juergen Gross Date: Wed, 15 Feb 2017 11:11:12 +0000 (+0100) Subject: libxl: correct xenstore entry for empty cdrom X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~2772 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=bc6a499ebcf102060987fb845c1450a38de441c7;p=xen.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_disk.c b/tools/libxl/libxl_disk.c index ac49df2b74..63de75c8fe 100644 --- a/tools/libxl/libxl_disk.c +++ b/tools/libxl/libxl_disk.c @@ -359,7 +359,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));