Hi On 3/19/20 10:59 AM, Patrick Delaunay wrote: > The output of the function mmc_offset_try_partition must be a > byte offset in mmc and not a multiple of blksz. > > This function is used in mmc_offset(), called by mmc_get_env_addr() > and the offset is used in write_env(), erase_env() and read_env(). > > In these function, blk_start = offset / mmc->read_bl_len > or /write_bl_len so this offset is not a multiple of blksz. > > Signed-off-by: Patrick Delaunay <[email protected]> > --- > > env/mmc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/env/mmc.c b/env/mmc.c > index 902cca23ad..c24b169f3e 100644 > --- a/env/mmc.c > +++ b/env/mmc.c > @@ -56,10 +56,10 @@ static inline int mmc_offset_try_partition(const char > *str, s64 *val) > } > > /* round up to info.blksz */ > - len = (CONFIG_ENV_SIZE + info.blksz - 1) & ~(info.blksz - 1); > + len = DIV_ROUND_UP(CONFIG_ENV_SIZE, info.blksz); > > /* use the top of the partion for the environment */ > - *val = (info.start + info.size - 1) - len / info.blksz; > + *val = (info.start + info.size - len) * info.blksz; > > return 0; > }
Reviewed-by: Patrice Chotard <[email protected]> Thanks

