aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPaul Jackson <pj@sgi.com>2008-05-14 08:15:34 -0700
committerThomas Gleixner <tglx@linutronix.de>2008-05-25 10:55:11 +0200
commitc3965bd15118742d72b4bc1a290d37b3f081eb98 (patch)
tree3c3acbdb900a54800d9f427b19ffb156ab16308f /include
parentb25e31cec7788ccba5749d10f8f4343fffff4750 (diff)
x86 boot: proper use of ARRAY_SIZE instead of repeated E820MAX constant
This patch is motivated by a subsequent patch which will allow for more memory map entries on EFI supported systems than can be passed via the x86 legacy BIOS E820 interface. The legacy interface is limited to E820MAX == 128 memory entries, and that "E820MAX" manifest constant was used as the size for several arrays and loops over those arrays. The primary change in this patch is to change code loop sizes over those arrays from using the constant E820MAX, to using the ARRAY_SIZE() macro evaluated for the array being looped. That way, a subsequent patch can change the size of some of these arrays, without breaking this code. This patch also adds a parameter to the sanitize_e820_map() routine, which had an implicit size for the array passed it of E820MAX entries. This new parameter explicitly passes the size of said array. Once again, this will allow a subsequent patch to change that array size for some calls to sanitize_e820_map() without breaking the code. As part of enhancing the sanitize_e820_map() interface this way, I further combined the unnecessarily distinct x86_32 and x86_64 declarations for this routine into a single, commonly used, declaration. This patch in itself should make no difference to the resulting kernel binary. [ mingo@elte.hu: merged to -tip ] Signed-off-by: Paul Jackson <pj@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86/e820.h3
-rw-r--r--include/asm-x86/setup.h1
2 files changed, 2 insertions, 2 deletions
diff --git a/include/asm-x86/e820.h b/include/asm-x86/e820.h
index b5b519feba1..65c891d2a4c 100644
--- a/include/asm-x86/e820.h
+++ b/include/asm-x86/e820.h
@@ -27,7 +27,8 @@ extern int e820_any_mapped(u64 start, u64 end, unsigned type);
extern int e820_all_mapped(u64 start, u64 end, unsigned type);
extern void add_memory_region(u64 start, u64 size, int type);
extern void e820_print_map(char *who);
-extern int sanitize_e820_map(struct e820entry *biosmap, char *pnr_map);
+extern int
+sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, char *pnr_map);
extern int copy_e820_map(struct e820entry *biosmap, int nr_map);
extern u64 update_memory_range(u64 start, u64 size, unsigned old_type,
unsigned new_type);
diff --git a/include/asm-x86/setup.h b/include/asm-x86/setup.h
index fa6763af8d2..ffa0f540fc7 100644
--- a/include/asm-x86/setup.h
+++ b/include/asm-x86/setup.h
@@ -56,7 +56,6 @@ char * __init machine_specific_memory_setup(void);
char *memory_setup(void);
int __init copy_e820_map(struct e820entry *biosmap, int nr_map);
-int __init sanitize_e820_map(struct e820entry *biosmap, char *pnr_map);
void __init add_memory_region(unsigned long long start,
unsigned long long size, int type);