2007-11-16 14:27:44

by Martin Schwidefsky

[permalink] [raw]
Subject: [patch 10/10] Fix memory detection.

From: Heiko Carstens <[email protected]>

Before we're getting short on memory detection fixes here is the next
one: if neither sclp nor diag260 report the storage size the detection
loop will return immediately without detecting anything. Fix this by
breaking the detection loop only if the memory end is known.

Signed-off-by: Heiko Carstens <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
---

arch/s390/kernel/early.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff -urpN linux-2.6/arch/s390/kernel/early.c linux-2.6-patched/arch/s390/kernel/early.c
--- linux-2.6/arch/s390/kernel/early.c 2007-11-16 14:27:30.000000000 +0100
+++ linux-2.6-patched/arch/s390/kernel/early.c 2007-11-16 14:27:45.000000000 +0100
@@ -200,7 +200,7 @@ static noinline __init void find_memory_
cc = __tprot(addr);
while (cc == old_cc) {
addr += CHUNK_INCR;
- if (addr >= memsize)
+ if (memsize && addr >= memsize)
break;
#ifndef CONFIG_64BIT
if (addr == ADDR2G)

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.