[U-Boot] [PATCH v2 06/22] Correct map_sysmem() logic in do_mem_mw()

Bin Meng bmeng.cn at gmail.com
Mon Mar 9 10:06:45 CET 2015


On Fri, Mar 6, 2015 at 3:25 AM, Simon Glass <sjg at chromium.org> wrote:
> This function does not unmap what it maps. Correct it.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v2: None
>
>  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;
>  }
>
> --

Reviewed-by: Bin Meng <bmeng.cn at gmail.com>


More information about the U-Boot mailing list