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 2cb686f60d0..2396b9da802 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)  {  	int x = e820.nr_map; -	if (x == E820MAX) { +	if (x == ARRAY_SIZE(e820.map)) {  		printk(KERN_ERR "Ooops! Too many entries in the memory map!\n");  		return;  	} @@ -142,7 +142,8 @@ void __init e820_print_map(char *who)   * replaces the original e820 map with a new one, removing overlaps.   *   */ -int __init sanitize_e820_map(struct e820entry *biosmap, char *pnr_map) +int __init sanitize_e820_map(struct e820entry *biosmap, int max_nr_map, +				char *pnr_map)  {  	struct change_member {  		struct e820entry *pbios; /* pointer to original bios entry */ @@ -314,7 +315,7 @@ int __init sanitize_e820_map(struct e820entry *biosmap, char *pnr_map)  					 * no more space left for new  					 * bios entries ?  					 */ -					if (++new_bios_entry >= E820MAX) +					if (++new_bios_entry >= max_nr_map)  						break;  			}  			if (current_type != 0)	{ @@ -403,7 +404,7 @@ void __init update_e820(void)  	u8 nr_map;  	nr_map = e820.nr_map; -	if (sanitize_e820_map(e820.map, &nr_map)) +	if (sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &nr_map))  		return;  	e820.nr_map = nr_map;  	printk(KERN_INFO "modified physical RAM map:\n");  |