diff options
| -rw-r--r-- | arch/x86/xen/suspend.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/x86/xen/suspend.c b/arch/x86/xen/suspend.c index 6343a5d8e93c..987267f79bf5 100644 --- a/arch/x86/xen/suspend.c +++ b/arch/x86/xen/suspend.c | |||
| @@ -1,4 +1,5 @@ | |||
| 1 | #include <linux/types.h> | 1 | #include <linux/types.h> |
| 2 | #include <linux/clockchips.h> | ||
| 2 | 3 | ||
| 3 | #include <xen/interface/xen.h> | 4 | #include <xen/interface/xen.h> |
| 4 | #include <xen/grant_table.h> | 5 | #include <xen/grant_table.h> |
| @@ -46,7 +47,19 @@ void xen_post_suspend(int suspend_cancelled) | |||
| 46 | 47 | ||
| 47 | } | 48 | } |
| 48 | 49 | ||
| 50 | static void xen_vcpu_notify_restore(void *data) | ||
| 51 | { | ||
| 52 | unsigned long reason = (unsigned long)data; | ||
| 53 | |||
| 54 | /* Boot processor notified via generic timekeeping_resume() */ | ||
| 55 | if ( smp_processor_id() == 0) | ||
| 56 | return; | ||
| 57 | |||
| 58 | clockevents_notify(reason, NULL); | ||
| 59 | } | ||
| 60 | |||
| 49 | void xen_arch_resume(void) | 61 | void xen_arch_resume(void) |
| 50 | { | 62 | { |
| 51 | /* nothing */ | 63 | smp_call_function(xen_vcpu_notify_restore, |
| 64 | (void *)CLOCK_EVT_NOTIFY_RESUME, 1); | ||
| 52 | } | 65 | } |
