diff mbox series

[v2,08/16] x86/cet: Check CPU_FEATURE_ACTIVE in permissive mode

Message ID 20231216165325.2584919-9-hjl.tools@gmail.com
State New
Headers show
Series x86/cet: Update CET kernel interface | expand

Commit Message

H.J. Lu Dec. 16, 2023, 4:53 p.m. UTC
Verify that CPU_FEATURE_ACTIVE works properly in permissive mode.
---
 sysdeps/x86/Makefile           | 1 +
 sysdeps/x86/tst-cet-legacy-4.c | 5 +++++
 2 files changed, 6 insertions(+)

Comments

H.J. Lu Dec. 18, 2023, 8:12 p.m. UTC | #1
On Sat, Dec 16, 2023 at 8:53 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> Verify that CPU_FEATURE_ACTIVE works properly in permissive mode.
> ---
>  sysdeps/x86/Makefile           | 1 +
>  sysdeps/x86/tst-cet-legacy-4.c | 5 +++++
>  2 files changed, 6 insertions(+)
>
> diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
> index 1bf6ff9e11..6911a07a87 100644
> --- a/sysdeps/x86/Makefile
> +++ b/sysdeps/x86/Makefile
> @@ -219,6 +219,7 @@ CFLAGS-tst-cet-legacy-mod-1.c += -fcf-protection=none
>  CFLAGS-tst-cet-legacy-mod-2.c += -fcf-protection=none
>  CFLAGS-tst-cet-legacy-3.c += -fcf-protection=none
>  CFLAGS-tst-cet-legacy-4.c += -fcf-protection=branch
> +CPPFLAGS-tst-cet-legacy-4a.c += -DCET_IS_PERMISSIVE=1
>  CFLAGS-tst-cet-legacy-4a.c += -fcf-protection
>  CFLAGS-tst-cet-legacy-4b.c += -fcf-protection
>  CFLAGS-tst-cet-legacy-mod-4.c += -fcf-protection=none
> diff --git a/sysdeps/x86/tst-cet-legacy-4.c b/sysdeps/x86/tst-cet-legacy-4.c
> index d75fb0e61c..c098120253 100644
> --- a/sysdeps/x86/tst-cet-legacy-4.c
> +++ b/sysdeps/x86/tst-cet-legacy-4.c
> @@ -21,6 +21,7 @@
>  #include <stdio.h>
>  #include <stdlib.h>
>  #include <string.h>
> +#include <sys/platform/x86.h>
>
>  #include <support/check.h>
>
> @@ -40,6 +41,10 @@ do_test (void)
>        return 0;
>      }
>
> +#ifdef CET_IS_PERMISSIVE
> +  TEST_VERIFY (!CPU_FEATURE_ACTIVE (IBT) && !CPU_FEATURE_ACTIVE (SHSTK));
> +#endif
> +
>    fp = dlsym (h, "test");
>    if (fp == NULL)
>      FAIL_EXIT1 ("cannot get symbol 'test': %s\n", dlerror ());
> --
> 2.43.0
>

I will check it in tomorrow if there is no objection.
diff mbox series

Patch

diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
index 1bf6ff9e11..6911a07a87 100644
--- a/sysdeps/x86/Makefile
+++ b/sysdeps/x86/Makefile
@@ -219,6 +219,7 @@  CFLAGS-tst-cet-legacy-mod-1.c += -fcf-protection=none
 CFLAGS-tst-cet-legacy-mod-2.c += -fcf-protection=none
 CFLAGS-tst-cet-legacy-3.c += -fcf-protection=none
 CFLAGS-tst-cet-legacy-4.c += -fcf-protection=branch
+CPPFLAGS-tst-cet-legacy-4a.c += -DCET_IS_PERMISSIVE=1
 CFLAGS-tst-cet-legacy-4a.c += -fcf-protection
 CFLAGS-tst-cet-legacy-4b.c += -fcf-protection
 CFLAGS-tst-cet-legacy-mod-4.c += -fcf-protection=none
diff --git a/sysdeps/x86/tst-cet-legacy-4.c b/sysdeps/x86/tst-cet-legacy-4.c
index d75fb0e61c..c098120253 100644
--- a/sysdeps/x86/tst-cet-legacy-4.c
+++ b/sysdeps/x86/tst-cet-legacy-4.c
@@ -21,6 +21,7 @@ 
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <sys/platform/x86.h>
 
 #include <support/check.h>
 
@@ -40,6 +41,10 @@  do_test (void)
       return 0;
     }
 
+#ifdef CET_IS_PERMISSIVE
+  TEST_VERIFY (!CPU_FEATURE_ACTIVE (IBT) && !CPU_FEATURE_ACTIVE (SHSTK));
+#endif
+
   fp = dlsym (h, "test");
   if (fp == NULL)
     FAIL_EXIT1 ("cannot get symbol 'test': %s\n", dlerror ());