aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/xen/suspend.c5
-rw-r--r--arch/x86/xen/xen-ops.h1
-rw-r--r--drivers/xen/manage.c6
-rw-r--r--include/xen/xen-ops.h3
4 files changed, 11 insertions, 4 deletions
diff --git a/arch/x86/xen/suspend.c b/arch/x86/xen/suspend.c
index 251669a932d4..2a234db5949b 100644
--- a/arch/x86/xen/suspend.c
+++ b/arch/x86/xen/suspend.c
@@ -38,8 +38,11 @@ void xen_post_suspend(int suspend_cancelled)
38 xen_cpu_initialized_map = cpu_online_map; 38 xen_cpu_initialized_map = cpu_online_map;
39#endif 39#endif
40 xen_vcpu_restore(); 40 xen_vcpu_restore();
41 xen_timer_resume();
42 } 41 }
43 42
44} 43}
45 44
45void xen_arch_resume(void)
46{
47 /* nothing */
48}
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
index 6f4b1045c1c2..77354d204257 100644
--- a/arch/x86/xen/xen-ops.h
+++ b/arch/x86/xen/xen-ops.h
@@ -37,7 +37,6 @@ void __init xen_time_init(void);
37unsigned long xen_get_wallclock(void); 37unsigned long xen_get_wallclock(void);
38int xen_set_wallclock(unsigned long time); 38int xen_set_wallclock(unsigned long time);
39unsigned long long xen_sched_clock(void); 39unsigned long long xen_sched_clock(void);
40void xen_timer_resume(void);
41 40
42irqreturn_t xen_debug_interrupt(int irq, void *dev_id); 41irqreturn_t xen_debug_interrupt(int irq, void *dev_id);
43 42
diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
index 5b546e365f00..2bb268e4ac56 100644
--- a/drivers/xen/manage.c
+++ b/drivers/xen/manage.c
@@ -68,6 +68,7 @@ static int xen_suspend(void *data)
68 if (!*cancelled) { 68 if (!*cancelled) {
69 xen_irq_resume(); 69 xen_irq_resume();
70 xen_console_resume(); 70 xen_console_resume();
71 xen_timer_resume();
71 } 72 }
72 73
73 return 0; 74 return 0;
@@ -107,9 +108,10 @@ static void do_suspend(void)
107 goto out; 108 goto out;
108 } 109 }
109 110
110 if (!cancelled) 111 if (!cancelled) {
112 xen_arch_resume();
111 xenbus_resume(); 113 xenbus_resume();
112 else 114 } else
113 xenbus_suspend_cancel(); 115 xenbus_suspend_cancel();
114 116
115 device_resume(); 117 device_resume();
diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
index a706d6a78960..883a21bba24b 100644
--- a/include/xen/xen-ops.h
+++ b/include/xen/xen-ops.h
@@ -11,4 +11,7 @@ void xen_post_suspend(int suspend_cancelled);
11void xen_mm_pin_all(void); 11void xen_mm_pin_all(void);
12void xen_mm_unpin_all(void); 12void xen_mm_unpin_all(void);
13 13
14void xen_timer_resume(void);
15void xen_arch_resume(void);
16
14#endif /* INCLUDE_XEN_OPS_H */ 17#endif /* INCLUDE_XEN_OPS_H */