mm/memblock.c: make the index explicit argument of for_each_memblock_type
authorGioh Kim <gi-oh.kim@profitbricks.com>
Thu, 16 Nov 2017 01:33:42 +0000 (17:33 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 16 Nov 2017 02:21:02 +0000 (18:21 -0800)
for_each_memblock_type macro function relies on idx variable defined in
the caller context.  Silent macro arguments are almost always wrong
thing to do.  They make code harder to read and easier to get wrong.
Let's use an explicit iterator parameter for for_each_memblock_type and
make the code more obious.  This patch is a mere cleanup and it
shouldn't introduce any functional change.

Link: http://lkml.kernel.org/r/20170913133029.28911-1-gi-oh.kim@profitbricks.com
Signed-off-by: Gioh Kim <gi-oh.kim@profitbricks.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/memblock.h
mm/memblock.c

index bae11c7e7bf31920fcf0b928b31dc29ad70f6f8b..ce0e5634c2f93ec314f6b3aaa38ab747595c9036 100644 (file)
@@ -389,10 +389,10 @@ static inline unsigned long memblock_region_reserved_end_pfn(const struct memblo
             region < (memblock.memblock_type.regions + memblock.memblock_type.cnt);    \
             region++)
 
             region < (memblock.memblock_type.regions + memblock.memblock_type.cnt);    \
             region++)
 
-#define for_each_memblock_type(memblock_type, rgn)                     \
-       for (idx = 0, rgn = &memblock_type->regions[0];                 \
-            idx < memblock_type->cnt;                                  \
-            idx++, rgn = &memblock_type->regions[idx])
+#define for_each_memblock_type(i, memblock_type, rgn)                  \
+       for (i = 0, rgn = &memblock_type->regions[0];                   \
+            i < memblock_type->cnt;                                    \
+            i++, rgn = &memblock_type->regions[i])
 
 #ifdef CONFIG_MEMTEST
 extern void early_memtest(phys_addr_t start, phys_addr_t end);
 
 #ifdef CONFIG_MEMTEST
 extern void early_memtest(phys_addr_t start, phys_addr_t end);
index 91205780e6b151f8239574c5f97b8d5ebc89b59f..18dbb69086bceb6df9a343dfc458d9dc9165b752 100644 (file)
@@ -533,7 +533,7 @@ repeat:
        base = obase;
        nr_new = 0;
 
        base = obase;
        nr_new = 0;
 
-       for_each_memblock_type(type, rgn) {
+       for_each_memblock_type(idx, type, rgn) {
                phys_addr_t rbase = rgn->base;
                phys_addr_t rend = rbase + rgn->size;
 
                phys_addr_t rbase = rgn->base;
                phys_addr_t rend = rbase + rgn->size;
 
@@ -637,7 +637,7 @@ static int __init_memblock memblock_isolate_range(struct memblock_type *type,
                if (memblock_double_array(type, base, size) < 0)
                        return -ENOMEM;
 
                if (memblock_double_array(type, base, size) < 0)
                        return -ENOMEM;
 
-       for_each_memblock_type(type, rgn) {
+       for_each_memblock_type(idx, type, rgn) {
                phys_addr_t rbase = rgn->base;
                phys_addr_t rend = rbase + rgn->size;
 
                phys_addr_t rbase = rgn->base;
                phys_addr_t rend = rbase + rgn->size;
 
@@ -1715,7 +1715,7 @@ static void __init_memblock memblock_dump(struct memblock_type *type)
 
        pr_info(" %s.cnt  = 0x%lx\n", type->name, type->cnt);
 
 
        pr_info(" %s.cnt  = 0x%lx\n", type->name, type->cnt);
 
-       for_each_memblock_type(type, rgn) {
+       for_each_memblock_type(idx, type, rgn) {
                char nid_buf[32] = "";
 
                base = rgn->base;
                char nid_buf[32] = "";
 
                base = rgn->base;
@@ -1739,7 +1739,7 @@ memblock_reserved_memory_within(phys_addr_t start_addr, phys_addr_t end_addr)
        unsigned long size = 0;
        int idx;
 
        unsigned long size = 0;
        int idx;
 
-       for_each_memblock_type((&memblock.reserved), rgn) {
+       for_each_memblock_type(idx, (&memblock.reserved), rgn) {
                phys_addr_t start, end;
 
                if (rgn->base + rgn->size < start_addr)
                phys_addr_t start, end;
 
                if (rgn->base + rgn->size < start_addr)