[U-Boot] [PATCH] common/memsize.c: fix endless loop when saving
Eddy Petrișor
eddy.petrisor at nxp.com
Tue Feb 9 18:41:01 CET 2016
When cnt reaches 0, any shift operation will keep cnt=0, so the condition
`cnt >= 0` doesn't make sense.
To fix this endless loop, we drop the useless condition and simply break the
loop when cnt reaches 0.
Signed-off-by: Eddy Petrișor <eddy.petrisor at nxp.com>
---
common/memsize.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/common/memsize.c b/common/memsize.c
index 5c0d279..a6af993 100644
--- a/common/memsize.c
+++ b/common/memsize.c
@@ -33,7 +33,7 @@ long get_ram_size(long *base, long maxsize)
long size;
int i = 0;
- for (cnt = (maxsize / sizeof(long)) >> 1; cnt >= 0; cnt >>= 1) {
+ for (cnt = (maxsize / sizeof(long)) >> 1; ; cnt >>= 1) {
addr = base + cnt; /* pointer arith! */
sync();
save[i] = *addr;
@@ -43,6 +43,7 @@ long get_ram_size(long *base, long maxsize)
*addr = ~cnt;
} else {
*addr = 0;
+ break;
}
}
--
1.9.2.459.g68773ac
More information about the U-Boot
mailing list