diff options
author | Keith Packard <keithp@keithp.com> | 2011-12-11 19:12:42 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-12-12 12:25:56 -0500 |
commit | e1ad783b12ec8b69da83479c5d21a0d8180bc519 (patch) | |
tree | 9f514caae0da32ae9d1dbf71a2b93f5d5910c472 /arch/x86/kernel | |
parent | 6d3e32e63f1fb47b3ba104d13dfac116df7b2bbb (diff) |
Revert "x86, efi: Calling __pa() with an ioremap()ed address is invalid"
This hangs my MacBook Air at boot time; I get no console
messages at all. I reverted this on top of -rc5 and my machine
boots again.
This reverts commit e8c7106280a305e1ff2a3a8a4dfce141469fb039.
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Huang Ying <huang.ying.caritas@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Link: http://lkml.kernel.org/r/1321621751-3650-1-git-send-email-matt@console
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r-- | arch/x86/kernel/e820.c | 3 | ||||
-rw-r--r-- | arch/x86/kernel/setup.c | 21 |
2 files changed, 2 insertions, 22 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 65ffd110a81..303a0e48f07 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
@@ -135,7 +135,6 @@ static void __init e820_print_type(u32 type) | |||
135 | printk(KERN_CONT "(usable)"); | 135 | printk(KERN_CONT "(usable)"); |
136 | break; | 136 | break; |
137 | case E820_RESERVED: | 137 | case E820_RESERVED: |
138 | case E820_RESERVED_EFI: | ||
139 | printk(KERN_CONT "(reserved)"); | 138 | printk(KERN_CONT "(reserved)"); |
140 | break; | 139 | break; |
141 | case E820_ACPI: | 140 | case E820_ACPI: |
@@ -784,7 +783,7 @@ u64 __init early_reserve_e820(u64 startt, u64 sizet, u64 align) | |||
784 | /* | 783 | /* |
785 | * Find the highest page frame number we have available | 784 | * Find the highest page frame number we have available |
786 | */ | 785 | */ |
787 | unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type) | 786 | static unsigned long __init e820_end_pfn(unsigned long limit_pfn, unsigned type) |
788 | { | 787 | { |
789 | int i; | 788 | int i; |
790 | unsigned long last_pfn = 0; | 789 | unsigned long last_pfn = 0; |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 9a9e40fb091..cf0ef986cb6 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -691,8 +691,6 @@ early_param("reservelow", parse_reservelow); | |||
691 | 691 | ||
692 | void __init setup_arch(char **cmdline_p) | 692 | void __init setup_arch(char **cmdline_p) |
693 | { | 693 | { |
694 | unsigned long end_pfn; | ||
695 | |||
696 | #ifdef CONFIG_X86_32 | 694 | #ifdef CONFIG_X86_32 |
697 | memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data)); | 695 | memcpy(&boot_cpu_data, &new_cpu_data, sizeof(new_cpu_data)); |
698 | visws_early_detect(); | 696 | visws_early_detect(); |
@@ -934,24 +932,7 @@ void __init setup_arch(char **cmdline_p) | |||
934 | init_gbpages(); | 932 | init_gbpages(); |
935 | 933 | ||
936 | /* max_pfn_mapped is updated here */ | 934 | /* max_pfn_mapped is updated here */ |
937 | end_pfn = max_low_pfn; | 935 | max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT); |
938 | |||
939 | #ifdef CONFIG_X86_64 | ||
940 | /* | ||
941 | * There may be regions after the last E820_RAM region that we | ||
942 | * want to include in the kernel direct mapping, such as | ||
943 | * EFI_RUNTIME_SERVICES_DATA. | ||
944 | */ | ||
945 | if (efi_enabled) { | ||
946 | unsigned long efi_end; | ||
947 | |||
948 | efi_end = e820_end_pfn(MAXMEM>>PAGE_SHIFT, E820_RESERVED_EFI); | ||
949 | if (efi_end > max_low_pfn) | ||
950 | end_pfn = efi_end; | ||
951 | } | ||
952 | #endif | ||
953 | |||
954 | max_low_pfn_mapped = init_memory_mapping(0, end_pfn << PAGE_SHIFT); | ||
955 | max_pfn_mapped = max_low_pfn_mapped; | 936 | max_pfn_mapped = max_low_pfn_mapped; |
956 | 937 | ||
957 | #ifdef CONFIG_X86_64 | 938 | #ifdef CONFIG_X86_64 |