Re: NOPL on 32-bit

From: H. Peter Anvin
Date: Sun Oct 03 2010 - 10:46:26 EST


On 10/03/2010 02:37 AM, Borislav Petkov wrote:
> Hi,
>
> it looks like we currently clear X86_FEATURE_NOPL in detect_nopl()
> unconditionally and not only on 32-bit, as it should be according to
> ba0593bf553c450a03dbc5f8c1f0ff58b778a0c8.
>
> I'm thinking maybe something like the following might be in order
>
> --
> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> index caa967d..9a2cfeb 100644
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -713,7 +713,9 @@ void __init early_cpu_init(void)
> */
> static void __cpuinit detect_nopl(struct cpuinfo_x86 *c)
> {
> +#ifdef CONFIG_X86_32
> clear_cpu_cap(c, X86_FEATURE_NOPL);
> +#endif
> }
>
> static void __cpuinit generic_identify(struct cpuinfo_x86 *c)
> --
>

Yes, that's a bug. It should be disabled only on 32 bits.

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/