aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/mach-voyager/setup.c
diff options
context:
space:
mode:
authorPaul Jackson <pj@sgi.com>2008-05-14 11:15:46 -0400
committerThomas Gleixner <tglx@linutronix.de>2008-05-25 04:55:11 -0400
commit6e9bcc796b120d17b08dde7ab958b82ddb899889 (patch)
treee7cecb5a49f875beae9b6aff6bb44777be714430 /arch/x86/mach-voyager/setup.c
parent028b785888c523baccdf27af0cdbf1deb92edec0 (diff)
x86 boot: change sanitize_e820_map parameter from byte to int to allow bigger memory maps
The map size counter passed into, and back out of, sanitize_e820_map(), was an eight bit type (char or u8), as derived from its origins in legacy BIOS E820 structures. This patch changes that type to an 'int', to allow this sanitize routine to also be used on larger maps (larger than the 256 count that fits in a char). The legacy BIOS E820 interface of course does not change; that remains at 8 bits for this count, holding up to E820MAX == 128 entries. But the kernel internals can handle more when those additional memory map entries are passed from the BIOS via EFI interfaces. Signed-off-by: Paul Jackson <pj@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/mach-voyager/setup.c')
-rw-r--r--arch/x86/mach-voyager/setup.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/mach-voyager/setup.c b/arch/x86/mach-voyager/setup.c
index 662b5c0a77d6..f4aca9fa9546 100644
--- a/arch/x86/mach-voyager/setup.c
+++ b/arch/x86/mach-voyager/setup.c
@@ -62,6 +62,7 @@ void __init time_init_hook(void)
62char *__init machine_specific_memory_setup(void) 62char *__init machine_specific_memory_setup(void)
63{ 63{
64 char *who; 64 char *who;
65 int new_nr;
65 66
66 who = "NOT VOYAGER"; 67 who = "NOT VOYAGER";
67 68
@@ -111,9 +112,11 @@ char *__init machine_specific_memory_setup(void)
111 * Otherwise fake a memory map; one section from 0k->640k, 112 * Otherwise fake a memory map; one section from 0k->640k,
112 * the next section from 1mb->appropriate_mem_k 113 * the next section from 1mb->appropriate_mem_k
113 */ 114 */
115 new_nr = boot_params.e820_entries;
114 sanitize_e820_map(boot_params.e820_map, 116 sanitize_e820_map(boot_params.e820_map,
115 ARRAY_SIZE(boot_params.e820_map), 117 ARRAY_SIZE(boot_params.e820_map),
116 &boot_params.e820_entries); 118 &new_nr);
119 boot_params.e820_entries = new_nr;
117 if (copy_e820_map(boot_params.e820_map, boot_params.e820_entries) 120 if (copy_e820_map(boot_params.e820_map, boot_params.e820_entries)
118 < 0) { 121 < 0) {
119 unsigned long mem_size; 122 unsigned long mem_size;