Expose psABI in thread_info, in preparation for the TIF_IA32 and TIF_X32 flags removal.
Signed-off-by: Gabriel Krisman Bertazi <kris...@collabora.com> --- arch/x86/include/asm/thread_info.h | 2 ++ arch/x86/kernel/process_64.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h index 6d55a9c0dda2..698feefd5f5f 100644 --- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h @@ -62,11 +62,13 @@ enum { struct thread_info { unsigned long flags; /* low level flags */ u32 status; /* thread synchronous flags */ + short int psabi; }; #define INIT_THREAD_INFO(tsk) \ { \ .flags = 0, \ + .psabi = 0, \ } #else /* !__ASSEMBLY__ */ diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index f20a365017b8..aea2c03e8a5d 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c @@ -532,6 +532,7 @@ void set_personality_64bit(void) /* inherit personality from parent */ /* Make sure to be in 64bit mode */ + current_thread_info()->psabi = PSABI_IA64; clear_thread_flag(TIF_IA32); clear_thread_flag(TIF_ADDR32); clear_thread_flag(TIF_X32); @@ -553,6 +554,7 @@ void set_personality_64bit(void) static void __set_personality_x32(void) { #ifdef CONFIG_X86_X32 + current_thread_info()->psabi = PSABI_X32; clear_thread_flag(TIF_IA32); set_thread_flag(TIF_X32); if (current->mm) @@ -574,6 +576,7 @@ static void __set_personality_x32(void) static void __set_personality_ia32(void) { #ifdef CONFIG_IA32_EMULATION + current_thread_info()->psabi = PSABI_IA32; set_thread_flag(TIF_IA32); clear_thread_flag(TIF_X32); if (current->mm) -- 2.27.0