[U-Boot] [PATCH] env_nand: fix incorrect size parameter to ALLOC_CACHE_ALIGN_BUFFER

Prabhakar Lad prabhakar.csengg at gmail.com
Fri Sep 7 21:32:40 CEST 2012


Hi Stephen,

Thanks for the patch.

On Sat, Sep 8, 2012 at 12:45 AM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> From: Stephen Warren <swarren at nvidia.com>
>
> The third parameter to ALLOC_CACHE_ALIGN_BUFFER is not size (as named),
> but rather count (number of elements of the type to allocate). The
> current code ends up allocating one copy of env_t for each byte in its
> size, which quite possibly ends up overflowing RAM.
>
> This fixes a bug in commit 3801a15 "env_nand: align NAND buffers".
>
> Reported-by: Prabhakar Lad <prabhakar.csengg at gmail.com>
> Signed-off-by: Stephen Warren <swarren at nvidia.com>

Reported-by: Prabhakar Lad <prabhakar.lad at ti.com>

Regards,
--Prabhakar Lad

> ---
>  common/env_nand.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/common/env_nand.c b/common/env_nand.c
> index e635472..79e8033 100644
> --- a/common/env_nand.c
> +++ b/common/env_nand.c
> @@ -226,7 +226,7 @@ int saveenv(void)
>  int saveenv(void)
>  {
>         int     ret = 0;
> -       ALLOC_CACHE_ALIGN_BUFFER(env_t, env_new, sizeof(env_t));
> +       ALLOC_CACHE_ALIGN_BUFFER(env_t, env_new, 1);
>         ssize_t len;
>         char    *res;
>         nand_erase_options_t nand_erase_options;
> --
> 1.7.0.4
>


More information about the U-Boot mailing list