public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers
@ 2016-01-21 11:02 Huaitong Han
  2016-01-21 11:42 ` Borislav Petkov
  2016-01-21 21:05 ` H. Peter Anvin
  0 siblings, 2 replies; 10+ messages in thread
From: Huaitong Han @ 2016-01-21 11:02 UTC (permalink / raw)
  To: tglx, mingo, hpa, david.vrabel, rusty; +Cc: x86, linux-kernel, Huaitong Han

v2:add a commit message.

Most of magic numbers of x86_capability have been converted to enum
cpuid_leafs, and this patch does update the remaining part.

Signed-off-by: Huaitong Han <huaitong.han@intel.com>
---
 arch/x86/include/asm/elf.h | 2 +-
 arch/x86/kernel/mpparse.c  | 2 +-
 arch/x86/lguest/boot.c     | 2 +-
 arch/x86/xen/enlighten.c   | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
index 1514753..15340e3 100644
--- a/arch/x86/include/asm/elf.h
+++ b/arch/x86/include/asm/elf.h
@@ -256,7 +256,7 @@ extern int force_personality32;
    instruction set this CPU supports.  This could be done in user space,
    but it's not easy, and we've already done it here.  */
 
-#define ELF_HWCAP		(boot_cpu_data.x86_capability[0])
+#define ELF_HWCAP		(boot_cpu_data.x86_capability[CPUID_1_EDX])
 
 /* This yields a string that ld.so will use to load implementation
    specific libraries for optimization.  This is more specific in
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index 30ca760..97340f2 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -408,7 +408,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
 	processor.cpuflag = CPU_ENABLED;
 	processor.cpufeature = (boot_cpu_data.x86 << 8) |
 	    (boot_cpu_data.x86_model << 4) | boot_cpu_data.x86_mask;
-	processor.featureflag = boot_cpu_data.x86_capability[0];
+	processor.featureflag = boot_cpu_data.x86_capability[CPUID_1_EDX];
 	processor.reserved[0] = 0;
 	processor.reserved[1] = 0;
 	for (i = 0; i < 2; i++) {
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index 4ba229a..a9033ae 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -1535,7 +1535,7 @@ __init void lguest_init(void)
 	 */
 	cpu_detect(&new_cpu_data);
 	/* head.S usually sets up the first capability word, so do it here. */
-	new_cpu_data.x86_capability[0] = cpuid_edx(1);
+	new_cpu_data.x86_capability[CPUID_1_EDX] = cpuid_edx(1);
 
 	/* Math is always hard! */
 	set_cpu_cap(&new_cpu_data, X86_FEATURE_FPU);
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index d09e4c9..2c26108 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1654,7 +1654,7 @@ asmlinkage __visible void __init xen_start_kernel(void)
 	cpu_detect(&new_cpu_data);
 	set_cpu_cap(&new_cpu_data, X86_FEATURE_FPU);
 	new_cpu_data.wp_works_ok = 1;
-	new_cpu_data.x86_capability[0] = cpuid_edx(1);
+	new_cpu_data.x86_capability[CPUID_1_EDX] = cpuid_edx(1);
 #endif
 
 	if (xen_start_info->mod_start) {
-- 
2.4.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers
  2016-01-21 11:02 [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers Huaitong Han
@ 2016-01-21 11:42 ` Borislav Petkov
  2016-01-21 21:04   ` H. Peter Anvin
  2016-01-21 21:05 ` H. Peter Anvin
  1 sibling, 1 reply; 10+ messages in thread
From: Borislav Petkov @ 2016-01-21 11:42 UTC (permalink / raw)
  To: Huaitong Han; +Cc: tglx, mingo, hpa, david.vrabel, rusty, x86, linux-kernel

On Thu, Jan 21, 2016 at 07:02:40PM +0800, Huaitong Han wrote:
> v2:add a commit message.
> 
> Most of magic numbers of x86_capability have been converted to enum
> cpuid_leafs, and this patch does update the remaining part.
> 
> Signed-off-by: Huaitong Han <huaitong.han@intel.com>
> ---
>  arch/x86/include/asm/elf.h | 2 +-
>  arch/x86/kernel/mpparse.c  | 2 +-
>  arch/x86/lguest/boot.c     | 2 +-
>  arch/x86/xen/enlighten.c   | 2 +-
>  4 files changed, 4 insertions(+), 4 deletions(-)

Applied, thanks.

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers
  2016-01-21 11:42 ` Borislav Petkov
@ 2016-01-21 21:04   ` H. Peter Anvin
  2016-01-21 21:21     ` Borislav Petkov
  0 siblings, 1 reply; 10+ messages in thread
From: H. Peter Anvin @ 2016-01-21 21:04 UTC (permalink / raw)
  To: Borislav Petkov, Huaitong Han
  Cc: tglx, mingo, david.vrabel, rusty, x86, linux-kernel

On 01/21/16 03:42, Borislav Petkov wrote:
> On Thu, Jan 21, 2016 at 07:02:40PM +0800, Huaitong Han wrote:
>> v2:add a commit message.
>>
>> Most of magic numbers of x86_capability have been converted to enum
>> cpuid_leafs, and this patch does update the remaining part.
>>
>> Signed-off-by: Huaitong Han <huaitong.han@intel.com>
>> ---
>>  arch/x86/include/asm/elf.h | 2 +-
>>  arch/x86/kernel/mpparse.c  | 2 +-
>>  arch/x86/lguest/boot.c     | 2 +-
>>  arch/x86/xen/enlighten.c   | 2 +-
>>  4 files changed, 4 insertions(+), 4 deletions(-)
> 

I'm wondering, though, if it wouldn't be better to turn these into
macros so that they can be used in assembly code.  That way the
definitions can be interspersed with the X86_FEATURE_ definitions, too.

	-hpa

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers
  2016-01-21 11:02 [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers Huaitong Han
  2016-01-21 11:42 ` Borislav Petkov
@ 2016-01-21 21:05 ` H. Peter Anvin
  1 sibling, 0 replies; 10+ messages in thread
From: H. Peter Anvin @ 2016-01-21 21:05 UTC (permalink / raw)
  To: Huaitong Han, tglx, mingo, david.vrabel, rusty; +Cc: x86, linux-kernel

On 01/21/16 03:02, Huaitong Han wrote:
> v2:add a commit message.
> 
> Most of magic numbers of x86_capability have been converted to enum
> cpuid_leafs, and this patch does update the remaining part.
> 
> Signed-off-by: Huaitong Han <huaitong.han@intel.com>

Also, the plural of leaf is "leaves".

	-hpa

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers
  2016-01-21 21:04   ` H. Peter Anvin
@ 2016-01-21 21:21     ` Borislav Petkov
  2016-01-21 21:25       ` H. Peter Anvin
  0 siblings, 1 reply; 10+ messages in thread
From: Borislav Petkov @ 2016-01-21 21:21 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Huaitong Han, tglx, mingo, david.vrabel, rusty, x86, linux-kernel

On Thu, Jan 21, 2016 at 01:04:57PM -0800, H. Peter Anvin wrote:
> I'm wondering, though, if it wouldn't be better to turn these into
> macros so that they can be used in assembly code. That way the
> definitions can be interspersed with the X86_FEATURE_ definitions,
> too.

What concrete use case do you have in mind, i.e., example?

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers
  2016-01-21 21:21     ` Borislav Petkov
@ 2016-01-21 21:25       ` H. Peter Anvin
  2016-01-21 21:33         ` Borislav Petkov
  0 siblings, 1 reply; 10+ messages in thread
From: H. Peter Anvin @ 2016-01-21 21:25 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Huaitong Han, tglx, mingo, david.vrabel, rusty, x86, linux-kernel

On 01/21/16 13:21, Borislav Petkov wrote:
> On Thu, Jan 21, 2016 at 01:04:57PM -0800, H. Peter Anvin wrote:
>> I'm wondering, though, if it wouldn't be better to turn these into
>> macros so that they can be used in assembly code. That way the
>> definitions can be interspersed with the X86_FEATURE_ definitions,
>> too.
> 
> What concrete use case do you have in mind, i.e., example?
> 

See X86_CAPABILITY in head_32.S for example.

	-hpa

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers
  2016-01-21 21:25       ` H. Peter Anvin
@ 2016-01-21 21:33         ` Borislav Petkov
  2016-01-21 21:37           ` H. Peter Anvin
  0 siblings, 1 reply; 10+ messages in thread
From: Borislav Petkov @ 2016-01-21 21:33 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Huaitong Han, tglx, mingo, david.vrabel, rusty, x86, linux-kernel

On Thu, Jan 21, 2016 at 01:25:22PM -0800, H. Peter Anvin wrote:
> See X86_CAPABILITY in head_32.S for example.

... so that you can get rid of the offset games at least for
CPUINFO_x86_capability in asm-offsets_32.c?

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers
  2016-01-21 21:33         ` Borislav Petkov
@ 2016-01-21 21:37           ` H. Peter Anvin
  2016-01-21 21:47             ` Borislav Petkov
  0 siblings, 1 reply; 10+ messages in thread
From: H. Peter Anvin @ 2016-01-21 21:37 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Huaitong Han, tglx, mingo, david.vrabel, rusty, x86, linux-kernel

On 01/21/16 13:33, Borislav Petkov wrote:
> On Thu, Jan 21, 2016 at 01:25:22PM -0800, H. Peter Anvin wrote:
>> See X86_CAPABILITY in head_32.S for example.
> 
> ... so that you can get rid of the offset games at least for
> CPUINFO_x86_capability in asm-offsets_32.c?
> 

No, you still need to be able to find the beginning of the capability
array, but the point is that right now it is implicit in that code that
CPUID_1_EDX == 0.

	-hpa

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers
  2016-01-21 21:37           ` H. Peter Anvin
@ 2016-01-21 21:47             ` Borislav Petkov
  2016-01-21 21:52               ` H. Peter Anvin
  0 siblings, 1 reply; 10+ messages in thread
From: Borislav Petkov @ 2016-01-21 21:47 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Huaitong Han, tglx, mingo, david.vrabel, rusty, x86, linux-kernel

On Thu, Jan 21, 2016 at 01:37:36PM -0800, H. Peter Anvin wrote:
> No, you still need to be able to find the beginning of the capability
> array, but the point is that right now it is implicit in that code that
> CPUID_1_EDX == 0.

Ah, you wanna be able to do:

---
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index af1112980dd4..143646f0add1 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -441,7 +443,7 @@ enable_paging:
 	movb %al,X86_MODEL
 	andb $0x0f,%cl		# mask mask revision
 	movb %cl,X86_MASK
-	movl %edx,X86_CAPABILITY
+	movl %edx,X86_CAPABILITY + CPUID_1_EDX*4
 
 is486:
 	movl $0x50022,%ecx	# set AM, WP, NE and MP

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers
  2016-01-21 21:47             ` Borislav Petkov
@ 2016-01-21 21:52               ` H. Peter Anvin
  0 siblings, 0 replies; 10+ messages in thread
From: H. Peter Anvin @ 2016-01-21 21:52 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Huaitong Han, tglx, mingo, david.vrabel, rusty, x86, linux-kernel

On January 21, 2016 1:47:32 PM PST, Borislav Petkov <bp@alien8.de> wrote:
>On Thu, Jan 21, 2016 at 01:37:36PM -0800, H. Peter Anvin wrote:
>> No, you still need to be able to find the beginning of the capability
>> array, but the point is that right now it is implicit in that code
>that
>> CPUID_1_EDX == 0.
>
>Ah, you wanna be able to do:
>
>---
>diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
>index af1112980dd4..143646f0add1 100644
>--- a/arch/x86/kernel/head_32.S
>+++ b/arch/x86/kernel/head_32.S
>@@ -441,7 +443,7 @@ enable_paging:
> 	movb %al,X86_MODEL
> 	andb $0x0f,%cl		# mask mask revision
> 	movb %cl,X86_MASK
>-	movl %edx,X86_CAPABILITY
>+	movl %edx,X86_CAPABILITY + CPUID_1_EDX*4
> 
> is486:
> 	movl $0x50022,%ecx	# set AM, WP, NE and MP

Basically, yes.
-- 
Sent from my Android device with K-9 Mail. Please excuse brevity and formatting.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-01-21 21:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-21 11:02 [PATCH V2] x86: use enum cpuid_leafs instead of magic numbers Huaitong Han
2016-01-21 11:42 ` Borislav Petkov
2016-01-21 21:04   ` H. Peter Anvin
2016-01-21 21:21     ` Borislav Petkov
2016-01-21 21:25       ` H. Peter Anvin
2016-01-21 21:33         ` Borislav Petkov
2016-01-21 21:37           ` H. Peter Anvin
2016-01-21 21:47             ` Borislav Petkov
2016-01-21 21:52               ` H. Peter Anvin
2016-01-21 21:05 ` H. Peter Anvin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox