public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc] x86: Use HAS_CPU_FEATURE with IBT and SHSTK [BZ #26625]
@ 2020-09-17 12:24 H.J. Lu
  0 siblings, 0 replies; only message in thread
From: H.J. Lu @ 2020-09-17 12:24 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=94cd37ebb293321115a36a422b091fdb72d2fb08

commit 94cd37ebb293321115a36a422b091fdb72d2fb08
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Sep 16 05:27:32 2020 -0700

    x86: Use HAS_CPU_FEATURE with IBT and SHSTK [BZ #26625]
    
    commit 04bba1e5d84b6fd8d3a3b006bc240cd5d241ee30
    Author: H.J. Lu <hjl.tools@gmail.com>
    Date:   Wed Aug 5 13:51:56 2020 -0700
    
        x86: Set CPU usable feature bits conservatively [BZ #26552]
    
        Set CPU usable feature bits only for CPU features which are usable in
        user space and whose usability can be detected from user space, excluding
        features like FSGSBASE whose enable bit can only be checked in the kernel.
    
    no longer turns on the usable bits of IBT and SHSTK since we don't know
    if IBT and SHSTK are usable until much later.  Use HAS_CPU_FEATURE to
    check if the processor supports IBT and SHSTK.

Diff:
---
 sysdeps/x86/cpu-features.c         | 4 ++--
 sysdeps/x86/dl-cet.c               | 4 ++--
 sysdeps/x86/tst-get-cpu-features.c | 2 --
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
index a9945b94bb..6551df19c0 100644
--- a/sysdeps/x86/cpu-features.c
+++ b/sysdeps/x86/cpu-features.c
@@ -723,9 +723,9 @@ no_cpuid:
 	     GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
 	   */
 	  unsigned int cet_feature = 0;
-	  if (!CPU_FEATURE_USABLE (IBT))
+	  if (!HAS_CPU_FEATURE (IBT))
 	    cet_feature |= GNU_PROPERTY_X86_FEATURE_1_IBT;
-	  if (!CPU_FEATURE_USABLE (SHSTK))
+	  if (!HAS_CPU_FEATURE (SHSTK))
 	    cet_feature |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
 
 	  if (cet_feature)
diff --git a/sysdeps/x86/dl-cet.c b/sysdeps/x86/dl-cet.c
index 03572f7af6..5524b66038 100644
--- a/sysdeps/x86/dl-cet.c
+++ b/sysdeps/x86/dl-cet.c
@@ -74,10 +74,10 @@ dl_cet_check (struct link_map *m, const char *program)
 
 	     GLIBC_TUNABLES=glibc.cpu.hwcaps=-IBT,-SHSTK
 	   */
-	  enable_ibt &= (CPU_FEATURE_USABLE (IBT)
+	  enable_ibt &= (HAS_CPU_FEATURE (IBT)
 			 && (enable_ibt_type == cet_always_on
 			     || (m->l_cet & lc_ibt) != 0));
-	  enable_shstk &= (CPU_FEATURE_USABLE (SHSTK)
+	  enable_shstk &= (HAS_CPU_FEATURE (SHSTK)
 			   && (enable_shstk_type == cet_always_on
 			       || (m->l_cet & lc_shstk) != 0));
 	}
diff --git a/sysdeps/x86/tst-get-cpu-features.c b/sysdeps/x86/tst-get-cpu-features.c
index a3225a00e6..d11eac9853 100644
--- a/sysdeps/x86/tst-get-cpu-features.c
+++ b/sysdeps/x86/tst-get-cpu-features.c
@@ -320,7 +320,6 @@ do_test (void)
   CHECK_CPU_FEATURE_USABLE (OSPKE);
   CHECK_CPU_FEATURE_USABLE (WAITPKG);
   CHECK_CPU_FEATURE_USABLE (AVX512_VBMI2);
-  CHECK_CPU_FEATURE_USABLE (SHSTK);
   CHECK_CPU_FEATURE_USABLE (GFNI);
   CHECK_CPU_FEATURE_USABLE (VAES);
   CHECK_CPU_FEATURE_USABLE (VPCLMULQDQ);
@@ -344,7 +343,6 @@ do_test (void)
   CHECK_CPU_FEATURE_USABLE (HYBRID);
   CHECK_CPU_FEATURE_USABLE (TSXLDTRK);
   CHECK_CPU_FEATURE_USABLE (PCONFIG);
-  CHECK_CPU_FEATURE_USABLE (IBT);
   CHECK_CPU_FEATURE_USABLE (AMX_BF16);
   CHECK_CPU_FEATURE_USABLE (AMX_TILE);
   CHECK_CPU_FEATURE_USABLE (AMX_INT8);


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-09-17 12:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-17 12:24 [glibc] x86: Use HAS_CPU_FEATURE with IBT and SHSTK [BZ #26625] H.J. Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).