diff options
Diffstat (limited to 'arch/arm64/kernel/hibernate.c')
-rw-r--r-- | arch/arm64/kernel/hibernate.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm64/kernel/hibernate.c b/arch/arm64/kernel/hibernate.c index f8df75d740f4..21ab5df9fa76 100644 --- a/arch/arm64/kernel/hibernate.c +++ b/arch/arm64/kernel/hibernate.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <asm/pgtable.h> | 33 | #include <asm/pgtable.h> |
34 | #include <asm/pgtable-hwdef.h> | 34 | #include <asm/pgtable-hwdef.h> |
35 | #include <asm/sections.h> | 35 | #include <asm/sections.h> |
36 | #include <asm/smp.h> | ||
36 | #include <asm/suspend.h> | 37 | #include <asm/suspend.h> |
37 | #include <asm/virt.h> | 38 | #include <asm/virt.h> |
38 | 39 | ||
@@ -236,6 +237,11 @@ int swsusp_arch_suspend(void) | |||
236 | unsigned long flags; | 237 | unsigned long flags; |
237 | struct sleep_stack_data state; | 238 | struct sleep_stack_data state; |
238 | 239 | ||
240 | if (cpus_are_stuck_in_kernel()) { | ||
241 | pr_err("Can't hibernate: no mechanism to offline secondary CPUs.\n"); | ||
242 | return -EBUSY; | ||
243 | } | ||
244 | |||
239 | local_dbg_save(flags); | 245 | local_dbg_save(flags); |
240 | 246 | ||
241 | if (__cpu_suspend_enter(&state)) { | 247 | if (__cpu_suspend_enter(&state)) { |