diff options
-rw-r--r-- | arch/i386/Kconfig | 16 | ||||
-rw-r--r-- | arch/i386/kernel/setup.c | 8 |
2 files changed, 15 insertions, 9 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 361aca8b3ec3..0790bdf8c1f1 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
@@ -548,6 +548,7 @@ config HIGHMEM4G | |||
548 | config HIGHMEM64G | 548 | config HIGHMEM64G |
549 | bool "64GB" | 549 | bool "64GB" |
550 | depends on !M386 && !M486 | 550 | depends on !M386 && !M486 |
551 | select X86_PAE | ||
551 | help | 552 | help |
552 | Select this if you have a 32-bit processor and more than 4 | 553 | Select this if you have a 32-bit processor and more than 4 |
553 | gigabytes of physical RAM. | 554 | gigabytes of physical RAM. |
@@ -577,12 +578,12 @@ choice | |||
577 | config VMSPLIT_3G | 578 | config VMSPLIT_3G |
578 | bool "3G/1G user/kernel split" | 579 | bool "3G/1G user/kernel split" |
579 | config VMSPLIT_3G_OPT | 580 | config VMSPLIT_3G_OPT |
580 | depends on !HIGHMEM | 581 | depends on !X86_PAE |
581 | bool "3G/1G user/kernel split (for full 1G low memory)" | 582 | bool "3G/1G user/kernel split (for full 1G low memory)" |
582 | config VMSPLIT_2G | 583 | config VMSPLIT_2G |
583 | bool "2G/2G user/kernel split" | 584 | bool "2G/2G user/kernel split" |
584 | config VMSPLIT_2G_OPT | 585 | config VMSPLIT_2G_OPT |
585 | depends on !HIGHMEM | 586 | depends on !X86_PAE |
586 | bool "2G/2G user/kernel split (for full 2G low memory)" | 587 | bool "2G/2G user/kernel split (for full 2G low memory)" |
587 | config VMSPLIT_1G | 588 | config VMSPLIT_1G |
588 | bool "1G/3G user/kernel split" | 589 | bool "1G/3G user/kernel split" |
@@ -602,10 +603,15 @@ config HIGHMEM | |||
602 | default y | 603 | default y |
603 | 604 | ||
604 | config X86_PAE | 605 | config X86_PAE |
605 | bool | 606 | bool "PAE (Physical Address Extension) Support" |
606 | depends on HIGHMEM64G | 607 | default n |
607 | default y | 608 | depends on !HIGHMEM4G |
608 | select RESOURCES_64BIT | 609 | select RESOURCES_64BIT |
610 | help | ||
611 | PAE is required for NX support, and furthermore enables | ||
612 | larger swapspace support for non-overcommit purposes. It | ||
613 | has the cost of more pagetable lookup overhead, and also | ||
614 | consumes more pagetable space per process. | ||
609 | 615 | ||
610 | # Common NUMA Features | 616 | # Common NUMA Features |
611 | config NUMA | 617 | config NUMA |
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index 2986b48a823f..d474cd639bcb 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c | |||
@@ -273,18 +273,18 @@ unsigned long __init find_max_low_pfn(void) | |||
273 | printk(KERN_WARNING "Warning only %ldMB will be used.\n", | 273 | printk(KERN_WARNING "Warning only %ldMB will be used.\n", |
274 | MAXMEM>>20); | 274 | MAXMEM>>20); |
275 | if (max_pfn > MAX_NONPAE_PFN) | 275 | if (max_pfn > MAX_NONPAE_PFN) |
276 | printk(KERN_WARNING "Use a PAE enabled kernel.\n"); | 276 | printk(KERN_WARNING "Use a HIGHMEM64G enabled kernel.\n"); |
277 | else | 277 | else |
278 | printk(KERN_WARNING "Use a HIGHMEM enabled kernel.\n"); | 278 | printk(KERN_WARNING "Use a HIGHMEM enabled kernel.\n"); |
279 | max_pfn = MAXMEM_PFN; | 279 | max_pfn = MAXMEM_PFN; |
280 | #else /* !CONFIG_HIGHMEM */ | 280 | #else /* !CONFIG_HIGHMEM */ |
281 | #ifndef CONFIG_X86_PAE | 281 | #ifndef CONFIG_HIGHMEM64G |
282 | if (max_pfn > MAX_NONPAE_PFN) { | 282 | if (max_pfn > MAX_NONPAE_PFN) { |
283 | max_pfn = MAX_NONPAE_PFN; | 283 | max_pfn = MAX_NONPAE_PFN; |
284 | printk(KERN_WARNING "Warning only 4GB will be used.\n"); | 284 | printk(KERN_WARNING "Warning only 4GB will be used.\n"); |
285 | printk(KERN_WARNING "Use a PAE enabled kernel.\n"); | 285 | printk(KERN_WARNING "Use a HIGHMEM64G enabled kernel.\n"); |
286 | } | 286 | } |
287 | #endif /* !CONFIG_X86_PAE */ | 287 | #endif /* !CONFIG_HIGHMEM64G */ |
288 | #endif /* !CONFIG_HIGHMEM */ | 288 | #endif /* !CONFIG_HIGHMEM */ |
289 | } else { | 289 | } else { |
290 | if (highmem_pages == -1) | 290 | if (highmem_pages == -1) |