Re: [PATCH] x86: make IDT read-only

From: Maciej W. Rozycki
Date: Mon Apr 08 2013 - 19:01:48 EST


On Mon, 8 Apr 2013, Kees Cook wrote:

> This makes the IDT unconditionally read-only. This primarily removes
> the IDT from being a target for arbitrary memory write attacks. It has
> an added benefit of also not leaking (via the "sidt" instruction) the
> kernel base offset, if it has been relocated.
[...]
> --- a/arch/x86/kernel/cpu/intel.c
> +++ b/arch/x86/kernel/cpu/intel.c
> @@ -215,7 +201,6 @@ static void __cpuinit intel_workarounds(struct cpuinfo_x86 *c)
>
> c->f00f_bug = 1;
> if (!f00f_workaround_enabled) {
> - trap_init_f00f_bug();
> printk(KERN_NOTICE "Intel Pentium with F0 0F bug - workaround enabled.\n");
> f00f_workaround_enabled = 1;
> }

FWIW the change looks reasonable to me, however given that that it makes
the arrangement unconditional and there is no longer a workaround to
enable I think it would make sense to remove the conditional block quoted
above altogether, along with the f00f_workaround_enabled variable itself
(alternatively "Intel Pentium with F0 0F bug" alone could be printed
instead and the name of the variable adjusted to make sense with the new
meaning -- up to you to decide).

Maciej
--
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/