Re: [PATCH v2] net: dsa: Remove VLA usage

From: Pavel Machek
Date: Sun Jul 29 2018 - 07:40:12 EST


Hi!

> > We avoid 2 VLAs by using a pre-allocated field in dsa_switch. We also
> > try to avoid dynamic allocation whenever possible (when using fewer than
> > bits-per-long ports, which is the common case).
> >
> > Link: http://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@xxxxxxxxxxxxxx
> > Link: http://lkml.kernel.org/r/20180505185145.GB32630@xxxxxxx
> > Signed-off-by: Salvatore Mesoraca <s.mesoraca16@xxxxxxxxx>
> > [kees: tweak commit subject and message slightly]
> > Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> > ---
> > include/net/dsa.h | 3 +++
> > net/dsa/dsa2.c | 14 ++++++++++++++
> > net/dsa/switch.c | 22 ++++++++++------------
> > 3 files changed, 27 insertions(+), 12 deletions(-)
> >
> > diff --git a/include/net/dsa.h b/include/net/dsa.h
> > index fdbd6082945d..461e8a7661b7 100644
> > --- a/include/net/dsa.h
> > +++ b/include/net/dsa.h
> > @@ -259,6 +259,9 @@ struct dsa_switch {
> > /* Number of switch port queues */
> > unsigned int num_tx_queues;
> >
> > + unsigned long *bitmap;
> > + unsigned long _bitmap;
>
> This looks rather confusing. _bitmap -> bitmap_data? bitmap_bits?

Actually, AFAICT that long is not used as a long, but as array of
bits. So maybe char bitmap_data[8] would be more appropriate?

(resend, now with right cc list).
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature