On 15/01/2021 13:05:47+0200, Vladimir Oltean wrote:
> > -static void ocelot_set_aggr_pgids(struct ocelot *ocelot)
> > +static int ocelot_set_aggr_pgids(struct ocelot *ocelot)
> > {
> > + struct net_device **bonds;
> > int i, port, lag;
> >
> > + bonds = kcalloc(ocelot->num_phys_ports, sizeof(struct net_device *),
> > + GFP_KERNEL);
> > + if (!bonds)
> > + return -ENOMEM;
> > +
>
> I remember somebody complaining about the temporary memory allocation
> done here, but I can't seem to find that email for some reason.
>
> Is it ok if I still keep the dynamic allocation there, though? Felix has
> up to 5 user ports, Seville has up to 9, Ocelot up to 11. I would like
> to not hardcode anything, in case (who knows!) more switches get added.
>
I was probably the one, the main reason being that this make this
function able to fail. Removing the dynamic allocation would ensure it
never fails. However, I didn't suggest any other solution so I'm fine if
you keep it.
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com