I'd like to request backport of upstream commit bc6a499ebcf1
("libxl: correct xenstore entry for empty cdrom") to at least
4.8 and 4.7.

As libxl sources have been split in 4.9 the patch doesn't apply.
Attached patch applies cleanly to 4.8 and with an offset to 4.7.


Juergen
>From bc6a499ebcf102060987fb845c1450a38de441c7 Mon Sep 17 00:00:00 2001
From: Juergen Gross <[email protected]>
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 <[email protected]>
Acked-by: Wei Liu <[email protected]>
---
 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

_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel

Reply via email to