[PATCH 2/8] regmap: zero out the regmap on allocation

Pratyush Yadav p.yadav at ti.com
Thu Jun 4 16:43:15 CEST 2020


Hi Simon,

On 31/05/20 08:08AM, Simon Glass wrote:
> Hi Pratyush,
> 
> On Wed, 27 May 2020 at 06:52, Pratyush Yadav <p.yadav at ti.com> wrote:
> >
> > Some fields will be introduced in the regmap structure that should be
> > set to 0 by default. So, once we allocate a regmap, make sure it is
> > zeroed out to avoid unexpected defaults for those values.
> >
> > Signed-off-by: Pratyush Yadav <p.yadav at ti.com>
> > ---
> >  drivers/core/regmap.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> 
> Reviewed-by: Simon Glass <sjg at chromium.org>
> 
> But I think you should use calloc() instead

Ok. Will do. FWIW, I don't see a clear separation of the total size into 
elements and size of each element so I think doing something like 
calloc(1, size) is a bit strange.
 
> > diff --git a/drivers/core/regmap.c b/drivers/core/regmap.c
> > index 74225361fd..24651fb3ec 100644
> > --- a/drivers/core/regmap.c
> > +++ b/drivers/core/regmap.c
> > @@ -30,10 +30,12 @@ DECLARE_GLOBAL_DATA_PTR;
> >  static struct regmap *regmap_alloc(int count)
> >  {
> >         struct regmap *map;
> > +       size_t size = sizeof(*map) + sizeof(map->ranges[0]) * count;
> >
> > -       map = malloc(sizeof(*map) + sizeof(map->ranges[0]) * count);
> > +       map = malloc(size);
> >         if (!map)
> >                 return NULL;
> > +       memset(map, 0, size);
> >         map->range_count = count;
> >
> >         return map;

-- 
Regards,
Pratyush Yadav
Texas Instruments India


More information about the U-Boot mailing list