* [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