aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup.c
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2009-11-10 21:27:23 -0500
committerIngo Molnar <mingo@elte.hu>2009-11-11 14:14:32 -0500
commit196cf0d67acad70ebb2572da489d5cc7066cdd05 (patch)
treeba475e8afc56aeb6392d146a7cb9bdae7ff65279 /arch/x86/kernel/setup.c
parent0420101c075530c65ba00b6fe7291b126fbfc5d2 (diff)
x86: Make sure wakeup trampoline code is below 1MB
Instead of using bootmem, try find_e820_area()/reserve_early(), and call acpi_reserve_memory() early, to allocate the wakeup trampoline code area below 1M. This is more reliable, and it also removes a dependency on bootmem. -v2: change function name to acpi_reserve_wakeup_memory(), as suggested by Rafael. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Acked-by: H. Peter Anvin <hpa@zytor.com> Acked-by: Rafael J. Wysocki <rjw@sisk.pl> Cc: pm list <linux-pm@lists.linux-foundation.org> Cc: Len Brown <lenb@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> LKML-Reference: <4AFA210B.3020207@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/setup.c')
-rw-r--r--arch/x86/kernel/setup.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index f89141982702..0a6e94ab8339 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -897,6 +897,13 @@ void __init setup_arch(char **cmdline_p)
897 897
898 reserve_brk(); 898 reserve_brk();
899 899
900#ifdef CONFIG_ACPI_SLEEP
901 /*
902 * Reserve low memory region for sleep support.
903 * even before init_memory_mapping
904 */
905 acpi_reserve_wakeup_memory();
906#endif
900 init_gbpages(); 907 init_gbpages();
901 908
902 /* max_pfn_mapped is updated here */ 909 /* max_pfn_mapped is updated here */
@@ -948,12 +955,6 @@ void __init setup_arch(char **cmdline_p)
948 955
949 initmem_init(0, max_pfn, acpi, k8); 956 initmem_init(0, max_pfn, acpi, k8);
950 957
951#ifdef CONFIG_ACPI_SLEEP
952 /*
953 * Reserve low memory region for sleep support.
954 */
955 acpi_reserve_bootmem();
956#endif
957 /* 958 /*
958 * Find and reserve possible boot-time SMP configuration: 959 * Find and reserve possible boot-time SMP configuration:
959 */ 960 */