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

Reply via email to