diff options
Diffstat (limited to 'arch/x86/kernel/e820.c')
-rw-r--r-- | arch/x86/kernel/e820.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 2cb686f60d0d..2396b9da8027 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
@@ -95,7 +95,7 @@ void __init add_memory_region(u64 start, u64 size, int type) | |||
95 | { | 95 | { |
96 | int x = e820.nr_map; | 96 | int x = e820.nr_map; |
97 | 97 | ||
98 | if (x == E820MAX) { | 98 | if (x == ARRAY_SIZE(e820.map)) { |
99 | printk(KERN_ERR "Ooops! Too many entries in the memory map!\n"); | 99 | printk(KERN_ERR "Ooops! Too many entries in the memory map!\n"); |
100 | return; | 100 | return; |
101 | } | 101 | } |
@@ -142,7 +142,8 @@ void __init e820_print_map(char *who) | |||
142 | * replaces the original e820 map with a new one, removing overlaps. | 142 | * replaces the original e820 map with a new one, removing overlaps. |
143 | * | 143 | * |
144 | */ | 144 | */ |
145 | int __init sanitize_e820_map(struct e820entry *biosmap, char *pnr_map) | 145 | int __init sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, |
146 | char *pnr_map) | ||
146 | { | 147 | { |
147 | struct change_member { | 148 | struct change_member { |
148 | struct e820entry *pbios; /* pointer to original bios entry */ | 149 | struct e820entry *pbios; /* pointer to original bios entry */ |
@@ -314,7 +315,7 @@ int __init sanitize_e820_map(struct e820entry *biosmap, char *pnr_map) | |||
314 | * no more space left for new | 315 | * no more space left for new |
315 | * bios entries ? | 316 | * bios entries ? |
316 | */ | 317 | */ |
317 | if (++new_bios_entry >= E820MAX) | 318 | if (++new_bios_entry >= max_nr_map) |
318 | break; | 319 | break; |
319 | } | 320 | } |
320 | if (current_type != 0) { | 321 | if (current_type != 0) { |
@@ -403,7 +404,7 @@ void __init update_e820(void) | |||
403 | u8 nr_map; | 404 | u8 nr_map; |
404 | 405 | ||
405 | nr_map = e820.nr_map; | 406 | nr_map = e820.nr_map; |
406 | if (sanitize_e820_map(e820.map, &nr_map)) | 407 | if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr_map)) |
407 | return; | 408 | return; |
408 | e820.nr_map = nr_map; | 409 | e820.nr_map = nr_map; |
409 | printk(KERN_INFO "modified physical RAM map:\n"); | 410 | printk(KERN_INFO "modified physical RAM map:\n"); |