Re: [PATCH -next] RDMA/mlx5: fix type warning of sizeof in __mlx5_ib_alloc_counters()

From: Leon Romanovsky
Date: Mon Sep 21 2020 - 09:26:15 EST


On Fri, Sep 18, 2020 at 11:23:18AM +0800, Liu Shixin wrote:
> On 2020/9/18 1:33, Leon Romanovsky wrote:
> > On Thu, Sep 17, 2020 at 02:24:51PM -0300, Jason Gunthorpe wrote:
> >> On Thu, Sep 17, 2020 at 08:05:11PM +0300, Leon Romanovsky wrote:
> >>> On Thu, Sep 17, 2020 at 09:38:06AM -0300, Jason Gunthorpe wrote:
> >>>> On Thu, Sep 17, 2020 at 12:08:10PM +0300, Leon Romanovsky wrote:
> >>>>> On Thu, Sep 17, 2020 at 05:10:08PM +0800, Liu Shixin wrote:
> >>>>>> sizeof() when applied to a pointer typed expression should give the
> >>>>>> size of the pointed data, even if the data is a pointer.
> >>>>>>
> >>>>>> Signed-off-by: Liu Shixin <liushixin2@xxxxxxxxxx>
> >>>> Needs a fixes line
> >>>>
> >>>>>> if (!cnts->names)
> >>>>>> return -ENOMEM;
> >>>>>>
> >>>>>> cnts->offsets = kcalloc(num_counters,
> >>>>>> - sizeof(cnts->offsets), GFP_KERNEL);
> >>>>>> + sizeof(*cnts->offsets), GFP_KERNEL);
> >>>>> This is not.
> >>>> Why not?
> >>> cnts->offsets is array of pointers that we will set later.
> >>> The "sizeof(*cnts->offsets)" will return the size of size_t, while we
> >>> need to get "size_t *".
> >> Then why isn't a pointer to size **?
> >>
> >> Something is rotten here
> > No problem, I'll check.
> I think cnts->offsets is an array pointer whose element is size_t rathen than pointer,
> so the patch description does not correspond.
> And I think it should be modified to sizeof(*cnts->offsets) with other description.

Sorry for me being wrong, you are right.

Thanks

> >
> >> Jason
> > .
> >
>