On Fri, Sep 15, 2017 at 07:09:58PM +0100, Ian Jackson wrote: > xc_interface_open etc. is not going to work if we have dropped > privilege, but xendevicemodel_shutdown will if everything is new > enough. > > Signed-off-by: Ian Jackson <ian.jack...@eu.citrix.com> > --- > hw/i386/xen/xen-hvm.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c > index 83420cd..639425a 100644 > --- a/hw/i386/xen/xen-hvm.c > +++ b/hw/i386/xen/xen-hvm.c > @@ -1386,9 +1386,18 @@ void destroy_hvm_domain(bool reboot) > { > xc_interface *xc_handle; > int sts; > + int rc; > > unsigned int reason = reboot ? SHUTDOWN_reboot : SHUTDOWN_poweroff; > > + if (xen_dmod) { > + rc = xendevicemodel_shutdown(xen_dmod, xen_domid, reason);
xendevicemodel_shutdown is going to need a compatibility stub in xen_common.h. > + if (!rc) > + return; > + perror("xendevicemodel_shutdown failed"); > + /* well, try the old thing then */ > + } > + > xc_handle = xc_interface_open(0, 0, 0); > if (xc_handle == NULL) { > fprintf(stderr, "Cannot acquire xenctrl handle\n"); -- Anthony PERARD