unsigned long arg; /* extra hypercall argument */
};
-static void xen_hvm_post_suspend(void)
+static void xen_hvm_post_suspend(int cancelled)
{
+ xen_arch_hvm_post_suspend(cancelled);
gnttab_resume();
}
{
xen_mm_pin_all();
gnttab_suspend();
+ xen_arch_pre_suspend();
}
-static void xen_post_suspend(void)
+static void xen_post_suspend(int cancelled)
{
+ xen_arch_post_suspend(cancelled);
gnttab_resume();
xen_mm_unpin_all();
}
*/
si->cancelled = HYPERVISOR_suspend(si->arg);
- xen_arch_hvm_post_suspend(si->cancelled);
- xen_hvm_post_suspend();
+ xen_hvm_post_suspend(si->cancelled);
if (!si->cancelled) {
xen_irq_resume();
}
xen_pre_suspend();
- xen_arch_pre_suspend();
/*
* This hypercall returns 1 if suspend was cancelled
*/
si->cancelled = HYPERVISOR_suspend(si->arg);
- xen_arch_post_suspend(si->cancelled);
- xen_post_suspend();
+ xen_post_suspend(si->cancelled);
if (!si->cancelled) {
xen_irq_resume();