[PATCH] memtest: fix list iteration in region setup

Steffen Trumtrar s.trumtrar at pengutronix.de
Mon Sep 18 05:26:28 PDT 2017


When memory regions start at 0, the current mem_test_request_regions function
wrongly assumes that struct resource *r points at the correct region. It points
to the first region however (which starts at 0).

The comment states, that the code starts from the second entry.
In include/linux/list.h the macro documentation however says:

 list_for_each_entry_from - iterate over list of given type from the current point

The correct list iteration macro to use here is list_for_each_entry_continue,
where the documentation says:

 Continue to iterate over list of given type, continuing after
 the current position.

Signed-off-by: Steffen Trumtrar <s.trumtrar at pengutronix.de>
---
 common/memtest.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/memtest.c b/common/memtest.c
index 8af998e883e1..0fc20467580e 100644
--- a/common/memtest.c
+++ b/common/memtest.c
@@ -90,7 +90,7 @@ int mem_test_request_regions(struct list_head *list)
 		 *
 		 * Between used regions. Start from second entry.
 		 */
-		list_for_each_entry_from(r, &bank->res->children, sibling) {
+		list_for_each_entry_continue(r, &bank->res->children, sibling) {
 			start = PAGE_ALIGN(r_prev->end + 1);
 			end = r->start - 1;
 			r_prev = r;
-- 
2.11.0




More information about the barebox mailing list