From: "H.J. Lu" <hjl.to...@gmail.com>

Update ARCH_X86_CET_STATUS and ARCH_X86_CET_DISABLE to include
Indirect Branch Tracking features.

Signed-off-by: H.J. Lu <hjl.to...@gmail.com>
Signed-off-by: Yu-cheng Yu <yu-cheng...@intel.com>
---
 arch/x86/include/uapi/asm/prctl.h | 2 ++
 arch/x86/kernel/cet_prctl.c       | 4 ++++
 2 files changed, 6 insertions(+)

diff --git a/arch/x86/include/uapi/asm/prctl.h 
b/arch/x86/include/uapi/asm/prctl.h
index d962f0ec9ccf..02243127dcf6 100644
--- a/arch/x86/include/uapi/asm/prctl.h
+++ b/arch/x86/include/uapi/asm/prctl.h
@@ -18,5 +18,7 @@
 #define ARCH_X86_CET_DISABLE           0x3002
 #define ARCH_X86_CET_LOCK              0x3003
 #define ARCH_X86_CET_ALLOC_SHSTK       0x3004
+#define ARCH_X86_CET_GET_LEGACY_BITMAP 0x3005 /* deprecated */
+#define ARCH_X86_CET_SET_LEGACY_BITMAP 0x3006 /* deprecated */
 
 #endif /* _ASM_X86_PRCTL_H */
diff --git a/arch/x86/kernel/cet_prctl.c b/arch/x86/kernel/cet_prctl.c
index 9c9d4262b07e..09d8c4ea935c 100644
--- a/arch/x86/kernel/cet_prctl.c
+++ b/arch/x86/kernel/cet_prctl.c
@@ -20,6 +20,8 @@ static int handle_get_status(unsigned long arg2)
 
        if (current->thread.cet.shstk_enabled)
                features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
+       if (current->thread.cet.ibt_enabled)
+               features |= GNU_PROPERTY_X86_FEATURE_1_IBT;
 
        shstk_base = current->thread.cet.shstk_base;
        shstk_size = current->thread.cet.shstk_size;
@@ -69,6 +71,8 @@ int prctl_cet(int option, unsigned long arg2)
                        return -EPERM;
                if (arg2 & GNU_PROPERTY_X86_FEATURE_1_SHSTK)
                        cet_disable_free_shstk(current);
+               if (arg2 & GNU_PROPERTY_X86_FEATURE_1_IBT)
+                       cet_disable_ibt();
 
                return 0;
 
-- 
2.17.1

Reply via email to