Re: [PATCH -next] x86/events:Use struct_size() helper in kzalloc()

Peter Zijlstra
2022-05-18T13:57:04Z

On Wed, May 18, 2022 at 08:49:20AM -0500, Gustavo A. R. Silva wrote:

> > Signed-off-by: Lin Yujun <linyujun809@huawei.com>
> > ---
> > arch/x86/events/rapl.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/x86/events/rapl.c b/arch/x86/events/rapl.c
> > index 77e3a47af5ad..c7e79f0ac04f 100644
> > --- a/arch/x86/events/rapl.c
> > +++ b/arch/x86/events/rapl.c
> > @@ -685,7 +685,7 @@ static int __init init_rapl_pmus(void)
> > int maxdie = topology_max_packages() * topology_max_die_per_package();
> > size_t size;
> >
> > - size = sizeof(*rapl_pmus) + maxdie * sizeof(struct rapl_pmu *);
> > + size = struct_size(rapl_pmus, pmus, maxdie);
> > rapl_pmus = kzalloc(size, GFP_KERNEL);
>
> It seems that in this case, size could be entirely replaced by
> struct_size().

Except every time I look at struct_size() I go: WTF does that do; while
the code as-is is crystal clear, no de-obfucstaion required.