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.Jackson@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