Re: [PATCH] [x86] detect and report lack of NX protections

From: Arjan van de Ven
Date: Mon Oct 19 2009 - 19:46:53 EST


On Mon, 19 Oct 2009 11:42:34 -0700
Kees Cook <kees.cook@xxxxxxxxxxxxx> wrote:

> It is possible for x86_64 systems to lack the NX bit (see
> check_efer()) either due to the hardware lacking support or the BIOS
> having turned off the CPU capability, so NX status should be
> reported. Additionally, anyone booting NX-capable CPUs in 32bit mode
> without PAE will lack NX functionality, so this change provides
> feedback for that case as well.
>
> Signed-off-by: Kees Cook <kees.cook@xxxxxxxxxxxxx>
> ---
> arch/x86/mm/init.c | 10 ++++++++++
> arch/x86/mm/setup_nx.c | 2 ++
> 2 files changed, 12 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
> index 73ffd55..8472293 100644
> --- a/arch/x86/mm/init.c
> +++ b/arch/x86/mm/init.c
> @@ -149,6 +149,16 @@ unsigned long __init_refok
> init_memory_mapping(unsigned long start, set_nx();
> if (nx_enabled)
> printk(KERN_INFO "NX (Execute Disable) protection:
> active\n");
> + else if (cpu_has_pae)
> +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
> + /* PAE kernel, PAE CPU, without NX */
> + printk(KERN_WARNING "Warning: NX (Execute Disable)
> protection "
> + "missing in CPU or disabled in BIOS!\n");
> +#else
> + /* 32bit non-PAE kernel, PAE CPU */
> + printk(KERN_WARNING "Warning: NX (Execute Disable)
> protection "
> + "cannot be enabled: non-PAE kernel!\n");
> +#endif

can we please not use "Warning" for something like this in the
message...

lets keep "Warning" for real WARN_ON() kind of events.
--
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/