Re: [PATCH 6/6] Convert intel uncore to struct_size

From: Shakeel Butt
Date: Thu Jun 07 2018 - 13:35:00 EST


On Thu, Jun 7, 2018 at 10:30 AM Ralph Campbell <rcampbell@xxxxxxxxxx> wrote:
>
>
>
> On 06/07/2018 07:57 AM, Matthew Wilcox wrote:
> > From: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>
> >
> > Need to do a bit of rearranging to make this work.
> >
> > Signed-off-by: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>
> > ---
> > arch/x86/events/intel/uncore.c | 19 ++++++++++---------
> > 1 file changed, 10 insertions(+), 9 deletions(-)
> >
> > diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c
> > index 15b07379e72d..e15cfad4f89b 100644
> > --- a/arch/x86/events/intel/uncore.c
> > +++ b/arch/x86/events/intel/uncore.c
> > @@ -865,8 +865,6 @@ static void uncore_types_exit(struct intel_uncore_type **types)
> > static int __init uncore_type_init(struct intel_uncore_type *type, bool setid)
> > {
> > struct intel_uncore_pmu *pmus;
> > - struct attribute_group *attr_group;
> > - struct attribute **attrs;
> > size_t size;
> > int i, j;
> >
> > @@ -891,21 +889,24 @@ static int __init uncore_type_init(struct intel_uncore_type *type, bool setid)
> > 0, type->num_counters, 0, 0);
> >
> > if (type->event_descs) {
> > + struct {
> > + struct attribute_group group;
> > + struct attribute *attrs[];
> > + } *attr_group;
> > for (i = 0; type->event_descs[i].attr.attr.name; i++);
>
> What does this for loop do?
> Looks like nothing given the semicolon at the end.
>

Finding the first index 'i' where type->event_descs[i].attr.attr.name
is NULL with the assumption that one such entry definitely exists.