summaryrefslogtreecommitdiff
path: root/sys/xen
diff options
context:
space:
mode:
Diffstat (limited to 'sys/xen')
-rw-r--r--sys/xen/xen-os.h2
-rw-r--r--sys/xen/xenbus/xenbusb.c5
2 files changed, 7 insertions, 0 deletions
diff --git a/sys/xen/xen-os.h b/sys/xen/xen-os.h
index 96e084fe6013..044433ae3d36 100644
--- a/sys/xen/xen-os.h
+++ b/sys/xen/xen-os.h
@@ -56,6 +56,8 @@ extern char *console_page;
extern int xen_disable_pv_disks;
extern int xen_disable_pv_nics;
+extern bool xen_suspend_cancelled;
+
enum xen_domain_type {
XEN_NATIVE, /* running on bare hardware */
XEN_PV_DOMAIN, /* running in a PV domain */
diff --git a/sys/xen/xenbus/xenbusb.c b/sys/xen/xenbus/xenbusb.c
index 3a0e54353cbe..8b755e2a62c3 100644
--- a/sys/xen/xenbus/xenbusb.c
+++ b/sys/xen/xenbus/xenbusb.c
@@ -791,6 +791,11 @@ xenbusb_resume(device_t dev)
if (device_get_state(kids[i]) == DS_NOTPRESENT)
continue;
+ if (xen_suspend_cancelled) {
+ DEVICE_RESUME(kids[i]);
+ continue;
+ }
+
ivars = device_get_ivars(kids[i]);
xs_unregister_watch(&ivars->xd_otherend_watch);