aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/mm/init_32.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 9d36eb9ebd53..1a9612499a34 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -687,6 +687,9 @@ early_param("highmem", parse_highmem);
687 */ 687 */
688void __init lowmem_pfn_init(void) 688void __init lowmem_pfn_init(void)
689{ 689{
690 /* max_low_pfn is 0, we already have early_res support */
691 max_low_pfn = max_pfn;
692
690 if (highmem_pages == -1) 693 if (highmem_pages == -1)
691 highmem_pages = 0; 694 highmem_pages = 0;
692#ifdef CONFIG_HIGHMEM 695#ifdef CONFIG_HIGHMEM
@@ -720,6 +723,8 @@ void __init lowmem_pfn_init(void)
720 */ 723 */
721void __init highmem_pfn_init(void) 724void __init highmem_pfn_init(void)
722{ 725{
726 max_low_pfn = MAXMEM_PFN;
727
723 if (highmem_pages == -1) 728 if (highmem_pages == -1)
724 highmem_pages = max_pfn - MAXMEM_PFN; 729 highmem_pages = max_pfn - MAXMEM_PFN;
725 730
@@ -732,7 +737,6 @@ void __init highmem_pfn_init(void)
732 pages_to_mb(highmem_pages)); 737 pages_to_mb(highmem_pages));
733 highmem_pages = 0; 738 highmem_pages = 0;
734 } 739 }
735 max_low_pfn = MAXMEM_PFN;
736#ifndef CONFIG_HIGHMEM 740#ifndef CONFIG_HIGHMEM
737 /* Maximum memory usable is what is directly addressable */ 741 /* Maximum memory usable is what is directly addressable */
738 printk(KERN_WARNING "Warning only %ldMB will be used.\n", MAXMEM>>20); 742 printk(KERN_WARNING "Warning only %ldMB will be used.\n", MAXMEM>>20);
@@ -758,13 +762,10 @@ void __init find_low_pfn_range(void)
758{ 762{
759 /* it could update max_pfn */ 763 /* it could update max_pfn */
760 764
761 /* max_low_pfn is 0, we already have early_res support */ 765 if (max_pfn <= MAXMEM_PFN)
762 max_low_pfn = max_pfn;
763
764 if (max_low_pfn > MAXMEM_PFN)
765 highmem_pfn_init();
766 else
767 lowmem_pfn_init(); 766 lowmem_pfn_init();
767 else
768 highmem_pfn_init();
768} 769}
769 770
770#ifndef CONFIG_NEED_MULTIPLE_NODES 771#ifndef CONFIG_NEED_MULTIPLE_NODES