patch-2.4.21 linux-2.4.21/arch/x86_64/kernel/setup64.c
Next file: linux-2.4.21/arch/x86_64/kernel/signal.c
Previous file: linux-2.4.21/arch/x86_64/kernel/setup.c
Back to the patch index
Back to the overall index
- Lines: 58
- Date:
2003-06-13 07:51:32.000000000 -0700
- Orig file:
linux-2.4.20/arch/x86_64/kernel/setup64.c
- Orig date:
2002-11-28 15:53:12.000000000 -0800
diff -urN linux-2.4.20/arch/x86_64/kernel/setup64.c linux-2.4.21/arch/x86_64/kernel/setup64.c
@@ -3,7 +3,7 @@
* Copyright (C) 1995 Linus Torvalds
* Copyright 2001, 2002 SuSE Labs / Andi Kleen.
* See setup.c for older changelog.
- * $Id: setup64.c,v 1.15 2002/09/05 15:25:43 ak Exp $
+ * $Id: setup64.c,v 1.19 2003/02/21 19:37:21 ak Exp $
*/
#include <linux/config.h>
#include <linux/init.h>
@@ -31,18 +31,17 @@
struct desc_ptr gdt_descr = { 0 /* filled in */, (unsigned long) gdt_table };
struct desc_ptr idt_descr = { 256 * 16, (unsigned long) idt_table };
-unsigned long __supported_pte_mask = ~_PAGE_NX;
+unsigned long __supported_pte_mask = ~0UL;
static int do_not_nx = 1;
char boot_cpu_stack[IRQSTACKSIZE] __cacheline_aligned;
-
static int __init nonx_setup(char *str)
{
- if (strstr(str,"off")) {
+ if (!strncmp(str,"off",3)) {
__supported_pte_mask &= ~_PAGE_NX;
do_not_nx = 1;
- } else if (strstr(str, "on")) {
+ } else if (!strncmp(str, "on",3)) {
do_not_nx = 0;
__supported_pte_mask |= _PAGE_NX;
}
@@ -108,10 +107,10 @@
/* CPU 0 is initialised in head64.c */
if (nr != 0) {
- estacks = (char *)__get_free_pages(GFP_ATOMIC, 0);
+ pda_init(nr);
+ estacks = (char *)__get_free_pages(GFP_ATOMIC, EXCEPTION_STK_ORDER);
if (!estacks)
panic("Can't allocate exception stacks for CPU %d\n",nr);
- pda_init(nr);
} else
estacks = boot_exception_stacks;
@@ -145,12 +144,10 @@
wrmsrl(MSR_CSTAR, ia32_cstar_target);
#endif
- if (!do_not_nx) {
rdmsrl(MSR_EFER, efer);
- if (!(efer & EFER_NX)) {
+ if (!(efer & EFER_NX) || do_not_nx) {
__supported_pte_mask &= ~_PAGE_NX;
}
- }
t->io_map_base = INVALID_IO_BITMAP_OFFSET;
memset(t->io_bitmap, 0xff, sizeof(t->io_bitmap));
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)