diff options
author | Ross Lagerwall <ross.lagerwall@citrix.com> | 2018-03-05 10:07:46 +0000 |
---|---|---|
committer | Ian Jackson <Ian.Jackson@eu.citrix.com> | 2018-04-26 16:29:51 +0100 |
commit | 4473348adf6640ca12b95bc29d1b06796994afb2 (patch) | |
tree | 52ee76c02eb0cca3f4e06e2b65b2583ea591453a /hw/xen | |
parent | 1c4010fa09971bcb8c696aa1df350263a2bd0298 (diff) | |
download | qemu-4473348adf6640ca12b95bc29d1b06796994afb2.zip |
xen: Expect xenstore write to fail when restricted
Saving the current state to xenstore may fail when running restricted
(in particular, after a migration). Therefore, don't report the error or
exit when running restricted. Toolstacks that want to allow running
QEMU restricted should instead make use of QMP events to listen for
state changes.
CC: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
Diffstat (limited to 'hw/xen')
-rw-r--r-- | hw/xen/xen-common.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c index 454777c587..6ec14c73ca 100644 --- a/hw/xen/xen-common.c +++ b/hw/xen/xen-common.c @@ -101,7 +101,12 @@ static void xenstore_record_dm_state(struct xs_handle *xs, const char *state) } snprintf(path, sizeof (path), "device-model/%u/state", xen_domid); - if (!xs_write(xs, XBT_NULL, path, state, strlen(state))) { + /* + * This call may fail when running restricted so don't make it fatal in + * that case. Toolstacks should instead use QMP to listen for state changes. + */ + if (!xs_write(xs, XBT_NULL, path, state, strlen(state)) && + !xen_domid_restrict) { error_report("error recording dm state"); exit(1); } |