[CRIU] [PATCH] x86: Add proper ifdefs into sigframe construction
Cyrill Gorcunov
gorcunov at openvz.org
Sun Jul 26 03:01:25 PDT 2015
This will help to support compat mode in the future.
Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
arch/x86/crtools.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/x86/crtools.c b/arch/x86/crtools.c
index 5ecb609b4cb1..caef8514558f 100644
--- a/arch/x86/crtools.c
+++ b/arch/x86/crtools.c
@@ -463,6 +463,7 @@ int restore_gpregs(struct rt_sigframe *f, UserX86RegsEntry *r)
#define CPREG1(d) f->uc.uc_mcontext.d = r->d
#define CPREG2(d, s) f->uc.uc_mcontext.d = r->s
+#ifdef CONFIG_X86_64
CPREG1(r8);
CPREG1(r9);
CPREG1(r10);
@@ -471,6 +472,8 @@ int restore_gpregs(struct rt_sigframe *f, UserX86RegsEntry *r)
CPREG1(r13);
CPREG1(r14);
CPREG1(r15);
+#endif
+
CPREG2(rdi, di);
CPREG2(rsi, si);
CPREG2(rbp, bp);
@@ -481,10 +484,19 @@ int restore_gpregs(struct rt_sigframe *f, UserX86RegsEntry *r)
CPREG2(rsp, sp);
CPREG2(rip, ip);
CPREG2(eflags, flags);
+
CPREG1(cs);
+
+#ifdef CONFIG_X86_32
CPREG1(ss);
+#endif
+
+#ifdef CONFIG_X86_32
CPREG1(gs);
CPREG1(fs);
+ CPREG1(es);
+ CPREG1(ds);
+#endif
return 0;
}
--
2.4.3
More information about the CRIU
mailing list