From: Oleksandr Tyshchenko <oleksandr_tyshche...@epam.com> Both state (XenbusStateClosed) and online (0) are expected by toolstack/xl devd to completely destroy the device. But "offline" is never being set by the backend resulting in timeout during domain destruction, garbage in Xestore and still running Qemu instance.
Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshche...@epam.com> Signed-off-by: Volodymyr Babchuk <volodymyr_babc...@epam.com> --- hw/xen/xen-bus.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/xen/xen-bus.c b/hw/xen/xen-bus.c index 75474d4b43..6e7ec3af64 100644 --- a/hw/xen/xen-bus.c +++ b/hw/xen/xen-bus.c @@ -519,6 +519,10 @@ static void xen_device_backend_changed(void *opaque, const char *path) xen_device_backend_set_state(xendev, XenbusStateClosed); } + if (xen_device_backend_get_state(xendev) == XenbusStateClosed) { + xen_device_backend_set_online(xendev, false); + } + /* * If a backend is still 'online' then we should leave it alone but, * if a backend is not 'online', then the device is a candidate -- 2.42.0