This function does not unmap what it maps. Correct it.

Signed-off-by: Simon Glass <s...@chromium.org>
---

 common/cmd_mem.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/common/cmd_mem.c b/common/cmd_mem.c
index bcb3ee3..855aa57 100644
--- a/common/cmd_mem.c
+++ b/common/cmd_mem.c
@@ -165,7 +165,7 @@ static int do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, 
char * const argv[])
 #endif
        ulong   addr, count;
        int     size;
-       void *buf;
+       void *buf, *start;
        ulong bytes;
 
        if ((argc < 3) || (argc > 4))
@@ -197,7 +197,8 @@ static int do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, 
char * const argv[])
        }
 
        bytes = size * count;
-       buf = map_sysmem(addr, bytes);
+       start = map_sysmem(addr, bytes);
+       buf = start;
        while (count-- > 0) {
                if (size == 4)
                        *((u32 *)buf) = (u32)writeval;
@@ -211,7 +212,7 @@ static int do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, 
char * const argv[])
                        *((u8 *)buf) = (u8)writeval;
                buf += size;
        }
-       unmap_sysmem(buf);
+       unmap_sysmem(start);
        return 0;
 }
 
-- 
2.2.0.rc0.207.ga3a616c

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to