[kvm-unit-tests] x86: Fix the name for the SMEP CPUID bit
diff mbox series

Message ID 20200204175034.18201-1-sean.j.christopherson@intel.com
State New
Headers show
Series
  • [kvm-unit-tests] x86: Fix the name for the SMEP CPUID bit
Related show

Commit Message

Sean Christopherson Feb. 4, 2020, 5:50 p.m. UTC
Fix the X86_FEATURE_* name for SMEP, which is incorrectly named
X86_FEATURE_INVPCID_SINGLE and is a wee bit confusing when looking at
the SMEP unit tests.

Note, there is no INVPCID_SINGLE CPUID bit, the bogus name likely came
from the Linux kernel, which has a synthetic feature flag for
INVPCID_SINGLE in word 7, bit 7 (CPUID 0x7.EBX is stored in word 9).

Fixes: 6ddcc29 ("kvm-unit-test: x86: Implement a generic wrapper for cpuid/cpuid_indexed functions")
Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
---
 lib/x86/processor.h | 2 +-
 x86/access.c        | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

Krish Sadhukhan Feb. 4, 2020, 7:17 p.m. UTC | #1
On 2/4/20 9:50 AM, Sean Christopherson wrote:
> Fix the X86_FEATURE_* name for SMEP, which is incorrectly named
> X86_FEATURE_INVPCID_SINGLE and is a wee bit confusing when looking at
> the SMEP unit tests.
>
> Note, there is no INVPCID_SINGLE CPUID bit, the bogus name likely came
> from the Linux kernel, which has a synthetic feature flag for
> INVPCID_SINGLE in word 7, bit 7 (CPUID 0x7.EBX is stored in word 9).
>
> Fixes: 6ddcc29 ("kvm-unit-test: x86: Implement a generic wrapper for cpuid/cpuid_indexed functions")
> Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
> ---
>   lib/x86/processor.h | 2 +-
>   x86/access.c        | 4 ++--
>   2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/x86/processor.h b/lib/x86/processor.h
> index 7057180..03fdf64 100644
> --- a/lib/x86/processor.h
> +++ b/lib/x86/processor.h
> @@ -138,7 +138,7 @@ static inline u8 cpuid_maxphyaddr(void)
>   #define	X86_FEATURE_XMM2		(CPUID(0x1, 0, EDX, 26))
>   #define	X86_FEATURE_TSC_ADJUST		(CPUID(0x7, 0, EBX, 1))
>   #define	X86_FEATURE_HLE			(CPUID(0x7, 0, EBX, 4))
> -#define	X86_FEATURE_INVPCID_SINGLE	(CPUID(0x7, 0, EBX, 7))
> +#define	X86_FEATURE_SMEP	        (CPUID(0x7, 0, EBX, 7))
>   #define	X86_FEATURE_INVPCID		(CPUID(0x7, 0, EBX, 10))
>   #define	X86_FEATURE_RTM			(CPUID(0x7, 0, EBX, 11))
>   #define	X86_FEATURE_SMAP		(CPUID(0x7, 0, EBX, 20))
> diff --git a/x86/access.c b/x86/access.c
> index 5233713..7303fc3 100644
> --- a/x86/access.c
> +++ b/x86/access.c
> @@ -860,7 +860,7 @@ static int check_smep_andnot_wp(ac_pool_t *pool)
>   	ac_test_t at1;
>   	int err_prepare_andnot_wp, err_smep_andnot_wp;
>   
> -	if (!this_cpu_has(X86_FEATURE_INVPCID_SINGLE)) {
> +	if (!this_cpu_has(X86_FEATURE_SMEP)) {
>   	    return 1;
>   	}
>   
> @@ -955,7 +955,7 @@ static int ac_test_run(void)
>   	}
>       }
>   
> -    if (!this_cpu_has(X86_FEATURE_INVPCID_SINGLE)) {
> +    if (!this_cpu_has(X86_FEATURE_SMEP)) {
>   	tests++;
>   	if (set_cr4_smep(1) == GP_VECTOR) {
>               successes++;
Reviewed-by: Krish Sadhukhan <krish.sadhukhan@oracle.com>
Vitaly Kuznetsov Feb. 5, 2020, 11:41 a.m. UTC | #2
Sean Christopherson <sean.j.christopherson@intel.com> writes:

> Fix the X86_FEATURE_* name for SMEP, which is incorrectly named
> X86_FEATURE_INVPCID_SINGLE and is a wee bit confusing when looking at
> the SMEP unit tests.
>
> Note, there is no INVPCID_SINGLE CPUID bit, the bogus name likely came
> from the Linux kernel, which has a synthetic feature flag for
> INVPCID_SINGLE in word 7, bit 7 (CPUID 0x7.EBX is stored in word 9).
>
> Fixes: 6ddcc29 ("kvm-unit-test: x86: Implement a generic wrapper for cpuid/cpuid_indexed functions")
> Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
> ---
>  lib/x86/processor.h | 2 +-
>  x86/access.c        | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/x86/processor.h b/lib/x86/processor.h
> index 7057180..03fdf64 100644
> --- a/lib/x86/processor.h
> +++ b/lib/x86/processor.h
> @@ -138,7 +138,7 @@ static inline u8 cpuid_maxphyaddr(void)
>  #define	X86_FEATURE_XMM2		(CPUID(0x1, 0, EDX, 26))
>  #define	X86_FEATURE_TSC_ADJUST		(CPUID(0x7, 0, EBX, 1))
>  #define	X86_FEATURE_HLE			(CPUID(0x7, 0, EBX, 4))
> -#define	X86_FEATURE_INVPCID_SINGLE	(CPUID(0x7, 0, EBX, 7))
> +#define	X86_FEATURE_SMEP	        (CPUID(0x7, 0, EBX, 7))
>  #define	X86_FEATURE_INVPCID		(CPUID(0x7, 0, EBX, 10))
>  #define	X86_FEATURE_RTM			(CPUID(0x7, 0, EBX, 11))
>  #define	X86_FEATURE_SMAP		(CPUID(0x7, 0, EBX, 20))
> diff --git a/x86/access.c b/x86/access.c
> index 5233713..7303fc3 100644
> --- a/x86/access.c
> +++ b/x86/access.c
> @@ -860,7 +860,7 @@ static int check_smep_andnot_wp(ac_pool_t *pool)
>  	ac_test_t at1;
>  	int err_prepare_andnot_wp, err_smep_andnot_wp;
>  
> -	if (!this_cpu_has(X86_FEATURE_INVPCID_SINGLE)) {
> +	if (!this_cpu_has(X86_FEATURE_SMEP)) {
>  	    return 1;
>  	}
>  
> @@ -955,7 +955,7 @@ static int ac_test_run(void)
>  	}
>      }
>  
> -    if (!this_cpu_has(X86_FEATURE_INVPCID_SINGLE)) {
> +    if (!this_cpu_has(X86_FEATURE_SMEP)) {
>  	tests++;
>  	if (set_cr4_smep(1) == GP_VECTOR) {
>              successes++;

"No functional change intended" :-)

Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Paolo Bonzini Feb. 5, 2020, 2:56 p.m. UTC | #3
On 04/02/20 18:50, Sean Christopherson wrote:
> Fix the X86_FEATURE_* name for SMEP, which is incorrectly named
> X86_FEATURE_INVPCID_SINGLE and is a wee bit confusing when looking at
> the SMEP unit tests.
> 
> Note, there is no INVPCID_SINGLE CPUID bit, the bogus name likely came
> from the Linux kernel, which has a synthetic feature flag for
> INVPCID_SINGLE in word 7, bit 7 (CPUID 0x7.EBX is stored in word 9).
> 
> Fixes: 6ddcc29 ("kvm-unit-test: x86: Implement a generic wrapper for cpuid/cpuid_indexed functions")
> Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
> ---
>  lib/x86/processor.h | 2 +-
>  x86/access.c        | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/x86/processor.h b/lib/x86/processor.h
> index 7057180..03fdf64 100644
> --- a/lib/x86/processor.h
> +++ b/lib/x86/processor.h
> @@ -138,7 +138,7 @@ static inline u8 cpuid_maxphyaddr(void)
>  #define	X86_FEATURE_XMM2		(CPUID(0x1, 0, EDX, 26))
>  #define	X86_FEATURE_TSC_ADJUST		(CPUID(0x7, 0, EBX, 1))
>  #define	X86_FEATURE_HLE			(CPUID(0x7, 0, EBX, 4))
> -#define	X86_FEATURE_INVPCID_SINGLE	(CPUID(0x7, 0, EBX, 7))
> +#define	X86_FEATURE_SMEP	        (CPUID(0x7, 0, EBX, 7))
>  #define	X86_FEATURE_INVPCID		(CPUID(0x7, 0, EBX, 10))
>  #define	X86_FEATURE_RTM			(CPUID(0x7, 0, EBX, 11))
>  #define	X86_FEATURE_SMAP		(CPUID(0x7, 0, EBX, 20))
> diff --git a/x86/access.c b/x86/access.c
> index 5233713..7303fc3 100644
> --- a/x86/access.c
> +++ b/x86/access.c
> @@ -860,7 +860,7 @@ static int check_smep_andnot_wp(ac_pool_t *pool)
>  	ac_test_t at1;
>  	int err_prepare_andnot_wp, err_smep_andnot_wp;
>  
> -	if (!this_cpu_has(X86_FEATURE_INVPCID_SINGLE)) {
> +	if (!this_cpu_has(X86_FEATURE_SMEP)) {
>  	    return 1;
>  	}
>  
> @@ -955,7 +955,7 @@ static int ac_test_run(void)
>  	}
>      }
>  
> -    if (!this_cpu_has(X86_FEATURE_INVPCID_SINGLE)) {
> +    if (!this_cpu_has(X86_FEATURE_SMEP)) {
>  	tests++;
>  	if (set_cr4_smep(1) == GP_VECTOR) {
>              successes++;
> 

Queued, thanks.

Paolo

Patch
diff mbox series

diff --git a/lib/x86/processor.h b/lib/x86/processor.h
index 7057180..03fdf64 100644
--- a/lib/x86/processor.h
+++ b/lib/x86/processor.h
@@ -138,7 +138,7 @@  static inline u8 cpuid_maxphyaddr(void)
 #define	X86_FEATURE_XMM2		(CPUID(0x1, 0, EDX, 26))
 #define	X86_FEATURE_TSC_ADJUST		(CPUID(0x7, 0, EBX, 1))
 #define	X86_FEATURE_HLE			(CPUID(0x7, 0, EBX, 4))
-#define	X86_FEATURE_INVPCID_SINGLE	(CPUID(0x7, 0, EBX, 7))
+#define	X86_FEATURE_SMEP	        (CPUID(0x7, 0, EBX, 7))
 #define	X86_FEATURE_INVPCID		(CPUID(0x7, 0, EBX, 10))
 #define	X86_FEATURE_RTM			(CPUID(0x7, 0, EBX, 11))
 #define	X86_FEATURE_SMAP		(CPUID(0x7, 0, EBX, 20))
diff --git a/x86/access.c b/x86/access.c
index 5233713..7303fc3 100644
--- a/x86/access.c
+++ b/x86/access.c
@@ -860,7 +860,7 @@  static int check_smep_andnot_wp(ac_pool_t *pool)
 	ac_test_t at1;
 	int err_prepare_andnot_wp, err_smep_andnot_wp;
 
-	if (!this_cpu_has(X86_FEATURE_INVPCID_SINGLE)) {
+	if (!this_cpu_has(X86_FEATURE_SMEP)) {
 	    return 1;
 	}
 
@@ -955,7 +955,7 @@  static int ac_test_run(void)
 	}
     }
 
-    if (!this_cpu_has(X86_FEATURE_INVPCID_SINGLE)) {
+    if (!this_cpu_has(X86_FEATURE_SMEP)) {
 	tests++;
 	if (set_cr4_smep(1) == GP_VECTOR) {
             successes++;