[S390] Fix memory detection.
Yet another patch in the countless series of memory detection fixes: if the last area of the reported storage size is a hole the detection loop will loop forever. Just break chunk detection loop if its end is going to be larger than reported storage size. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
committed by
Martin Schwidefsky
parent
0d2be08893
commit
0b8da654b6
@@ -200,11 +200,13 @@ static noinline __init void find_memory_chunks(unsigned long memsize)
|
|||||||
cc = __tprot(addr);
|
cc = __tprot(addr);
|
||||||
while (cc == old_cc) {
|
while (cc == old_cc) {
|
||||||
addr += CHUNK_INCR;
|
addr += CHUNK_INCR;
|
||||||
cc = __tprot(addr);
|
if (addr >= memsize)
|
||||||
|
break;
|
||||||
#ifndef CONFIG_64BIT
|
#ifndef CONFIG_64BIT
|
||||||
if (addr == ADDR2G)
|
if (addr == ADDR2G)
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
cc = __tprot(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (old_addr != addr &&
|
if (old_addr != addr &&
|
||||||
|
Reference in New Issue
Block a user