From: Serge E. Hallyn <serue@xxxxxxxxxx> Signed-off-by: Serge E. Hallyn <serue@xxxxxxxxxx> --- arch/x86/kernel/checkpoint.c | 21 +++++++++++++++------ 1 files changed, 15 insertions(+), 6 deletions(-) diff --git a/arch/x86/kernel/checkpoint.c b/arch/x86/kernel/checkpoint.c index 5952e27..b01a2fc 100644 --- a/arch/x86/kernel/checkpoint.c +++ b/arch/x86/kernel/checkpoint.c @@ -283,12 +283,21 @@ int restore_thread(struct ckpt_ctx *ctx) load_TLS(thread, cpu); put_cpu(); -#if defined(CONFIG_X86_64) && defined(CONFIG_COMPAT) - if (h->thread_info_flags & _TIF_IA32) - set_thread_flag(TIF_IA32); - else - clear_thread_flag(TIF_IA32); -#endif + { + int pre, post; + /* + * Eventually we'd like to support mixed-bit restart, but for + * now don't pretend to. + */ + pre = test_thread_flag(TIF_IA32); + post = h->thread_info_flags & _TIF_IA32; + if ((pre && !post) || (post && !pre)) { + ret = -EINVAL; + ckpt_err(ctx, ret, "%d-bit restarting %d-bit\n", + pre ? 32 : 64, post ? 32 : 64); + goto out; + } + } /* TODO: restore TIF flags as necessary (e.g. TIF_NOTSC) */ -- 1.6.0.4 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers