aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/power/hibernate_asm_64.S7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/power/hibernate_asm_64.S b/arch/x86/power/hibernate_asm_64.S
index e2386cb4e0c3..4400a43b9e28 100644
--- a/arch/x86/power/hibernate_asm_64.S
+++ b/arch/x86/power/hibernate_asm_64.S
@@ -21,8 +21,10 @@
21#include <asm/page_types.h> 21#include <asm/page_types.h>
22#include <asm/asm-offsets.h> 22#include <asm/asm-offsets.h>
23#include <asm/processor-flags.h> 23#include <asm/processor-flags.h>
24#include <asm/frame.h>
24 25
25ENTRY(swsusp_arch_suspend) 26ENTRY(swsusp_arch_suspend)
27 FRAME_BEGIN
26 movq $saved_context, %rax 28 movq $saved_context, %rax
27 movq %rsp, pt_regs_sp(%rax) 29 movq %rsp, pt_regs_sp(%rax)
28 movq %rbp, pt_regs_bp(%rax) 30 movq %rbp, pt_regs_bp(%rax)
@@ -50,7 +52,9 @@ ENTRY(swsusp_arch_suspend)
50 movq %rax, restore_cr3(%rip) 52 movq %rax, restore_cr3(%rip)
51 53
52 call swsusp_save 54 call swsusp_save
55 FRAME_END
53 ret 56 ret
57ENDPROC(swsusp_arch_suspend)
54 58
55ENTRY(restore_image) 59ENTRY(restore_image)
56 /* switch to temporary page tables */ 60 /* switch to temporary page tables */
@@ -107,6 +111,7 @@ ENTRY(core_restore_code)
107 */ 111 */
108 112
109ENTRY(restore_registers) 113ENTRY(restore_registers)
114 FRAME_BEGIN
110 /* go back to the original page tables */ 115 /* go back to the original page tables */
111 movq %rbx, %cr3 116 movq %rbx, %cr3
112 117
@@ -147,4 +152,6 @@ ENTRY(restore_registers)
147 /* tell the hibernation core that we've just restored the memory */ 152 /* tell the hibernation core that we've just restored the memory */
148 movq %rax, in_suspend(%rip) 153 movq %rax, in_suspend(%rip)
149 154
155 FRAME_END
150 ret 156 ret
157ENDPROC(restore_registers)