[PATCH 1/2] memtest: skip memory region smaller than one page

Renaud Barbier renaud.barbier at ge.com
Mon Jun 15 02:35:41 PDT 2015


If the size between memory regions is smaller than one page, the
size is rounded down to 0. This results in a region request failure.
This commit skips the memory region whose size is smaller than a page.

Signed-off-by: Renaud Barbier <renaud.barbier at ge.com>
---
 commands/memtest.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/commands/memtest.c b/commands/memtest.c
index 9dec0ef..7561230 100644
--- a/commands/memtest.c
+++ b/commands/memtest.c
@@ -62,9 +62,11 @@ static int request_memtest_regions(struct list_head *list)
 			start = PAGE_ALIGN(bank->res->start);
 			size = PAGE_ALIGN_DOWN(bank->res->end - start + 1);
 
-			ret = alloc_memtest_region(list, start, size);
-			if (ret < 0)
-				return ret;
+			if (size) {
+				ret = alloc_memtest_region(list, start, size);
+				if (ret < 0)
+					return ret;
+			}
 
 			continue;
 		}
@@ -95,6 +97,8 @@ static int request_memtest_regions(struct list_head *list)
 				continue;
 
 			size = PAGE_ALIGN_DOWN(end - start + 1);
+			if (size == 0)
+				continue;
 			ret = alloc_memtest_region(list, start, size);
 			if (ret < 0)
 				return ret;
@@ -108,7 +112,7 @@ static int request_memtest_regions(struct list_head *list)
 		start = PAGE_ALIGN(r->end);
 		end = bank->res->end;
 		size = PAGE_ALIGN_DOWN(end - start + 1);
-		if (start < end && start > r->end) {
+		if (size && start < end && start > r->end) {
 			ret = alloc_memtest_region(list, start, size);
 			if (ret < 0)
 				return ret;
-- 
1.7.1




More information about the barebox mailing list