diff options
Diffstat (limited to 'arch/x86/kernel/e820.c')
| -rw-r--r-- | arch/x86/kernel/e820.c | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index df06ade26be..d32abeabbda 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -835,7 +835,7 @@ static int __init parse_memopt(char *p)  }  early_param("mem", parse_memopt); -static int __init parse_memmap_opt(char *p) +static int __init parse_memmap_one(char *p)  {  	char *oldp;  	u64 start_at, mem_size; @@ -877,6 +877,20 @@ static int __init parse_memmap_opt(char *p)  	return *p == '\0' ? 0 : -EINVAL;  } +static int __init parse_memmap_opt(char *str) +{ +	while (str) { +		char *k = strchr(str, ','); + +		if (k) +			*k++ = 0; + +		parse_memmap_one(str); +		str = k; +	} + +	return 0; +}  early_param("memmap", parse_memmap_opt);  void __init finish_e820_parsing(void)  |