[PATCH 22.11 2/7] net/nfp: fix resource leak for flower firmware

Chaoyong He chaoyong.he at corigine.com
Thu Mar 7 12:03:09 CET 2024


> > On Thu, 7 Mar 2024 at 06:05, Chaoyong He <chaoyong.he at corigine.com>
> > wrote:
> > >
> > > [ upstream commit 7c596721ae5f41d1dbab8b936a4983928d6b5603 ]
> > >
> > > Fix the resource leak problem in the logic of flower firmware
> > > application.
> > >
> > > Fixes: e1124c4f8a45 ("net/nfp: add flower representor framework")
> > >
> > > Signed-off-by: Chaoyong He <chaoyong.he at corigine.com>
> > > ---
> > >  .../net/nfp/flower/nfp_flower_representor.c   | 89
> ++++++++++++++++++-
> > >  .../net/nfp/flower/nfp_flower_representor.h   |  1 +
> > >  2 files changed, 86 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c
> > > b/drivers/net/nfp/flower/nfp_flower_representor.c
> > > index 32c4574..854d117 100644
> > > --- a/drivers/net/nfp/flower/nfp_flower_representor.c
> > > +++ b/drivers/net/nfp/flower/nfp_flower_representor.c
> > > ...
> > > +static void
> > > +nfp_flower_repr_free_all(struct nfp_app_fw_flower *app_fw_flower) {
> > > +       uint32_t i;
> > > +       struct nfp_flower_representor *repr;
> > > +
> > > +       for (i = 0; i < MAX_FLOWER_VFS; i++) {
> > > +               repr = app_fw_flower->vf_reprs[i];
> > > +               if (repr != NULL) {
> > > +                       nfp_flower_repr_free(repr, NFP_REPR_TYPE_VF);
> > > +                       app_fw_flower->vf_reprs[i] = NULL;
> > > +               }
> > > +       }
> > > +
> > > +       for (i = 0; i < NFP_MAX_PHYPORTS; i++) {
> > > +               repr = app_fw_flower->phy_reprs[i];
> > > +               if (repr != NULL) {
> > > +                       nfp_flower_repr_free(repr, NFP_REPR_TYPE_PHYS_PORT);
> > > +                       app_fw_flower->phy_reprs[i] = NULL;
> > > +               }
> > > +       }
> >
> > Thanks for sending the series, but this causes a compiler warning on
> > Debian stable with gcc 12.2.0:
> >
> > [8/34] Compiling C object
> > drivers/libtmp_rte_net_nfp.a.p/net_nfp_flower_nfp_flower_representor.c
> > .o
> > ../drivers/net/nfp/flower/nfp_flower_representor.c: In function
> > ‘nfp_flower_repr_free_all’:
> > ../drivers/net/nfp/flower/nfp_flower_representor.c:876:22: warning:
> > iteration 8 invokes undefined behavior
> > [-Waggressive-loop-optimizations]
> >   876 |                 repr = app_fw_flower->phy_reprs[i];
> >       |                 ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > ../drivers/net/nfp/flower/nfp_flower_representor.c:875:23: note:
> > within this loop
> 
> Oh, sorry for this.
> In line 875, the 'NFP_MAX_PHYPORTS' should be 'MAX_FLOWER_PHYPORTS'
> actually.

And I will send a v2 patch series to fix that, thanks.


More information about the stable mailing list