diff options
Diffstat (limited to 'arch/mips/kernel/setup.c')
| -rw-r--r-- | arch/mips/kernel/setup.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 36cf8d65c47d..3be0e6ba2797 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -87,6 +87,13 @@ void __init add_memory_region(phys_addr_t start, phys_addr_t size, long type)  	int x = boot_mem_map.nr_map;  	int i; +	/* +	 * If the region reaches the top of the physical address space, adjust +	 * the size slightly so that (start + size) doesn't overflow +	 */ +	if (start + size - 1 == (phys_addr_t)ULLONG_MAX) +		--size; +  	/* Sanity check */  	if (start + size < start) {  		pr_warn("Trying to add an invalid memory region, skipped\n");  | 
