lkml.org 
[lkml]   [2020]   [Nov]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [net-next PATCH 1/3] octeontx2-af: Add devlink suppoort to af driver
Date
Hi Willem,

Thanks for the review.

> -----Original Message-----
> From: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
> Sent: Monday, November 2, 2020 7:01 PM
> To: George Cherian <gcherian@marvell.com>
> Cc: Network Development <netdev@vger.kernel.org>; linux-kernel <linux-
> kernel@vger.kernel.org>; Jakub Kicinski <kuba@kernel.org>; David Miller
> <davem@davemloft.net>; Sunil Kovvuri Goutham
> <sgoutham@marvell.com>; Linu Cherian <lcherian@marvell.com>;
> Geethasowjanya Akula <gakula@marvell.com>; masahiroy@kernel.org
> Subject: Re: [net-next PATCH 1/3] octeontx2-af: Add devlink suppoort
> to af driver
>
> On Mon, Nov 2, 2020 at 12:07 AM George Cherian
> <george.cherian@marvell.com> wrote:
> >
> > Add devlink support to AF driver. Basic devlink support is added.
> > Currently info_get is the only supported devlink ops.
> >
> > devlink ouptput looks like this
> > # devlink dev
> > pci/0002:01:00.0
> > # devlink dev info
> > pci/0002:01:00.0:
> > driver octeontx2-af
> > versions:
> > fixed:
> > mbox version: 9
> >
> > Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
> > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> > Signed-off-by: George Cherian <george.cherian@marvell.com>
>
> > diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.h
> > b/drivers/net/ethernet/marvell/octeontx2/af/rvu.h
> > index 5ac9bb12415f..c112b299635d 100644
> > --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.h
> > +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.h
> > @@ -12,7 +12,10 @@
> > #define RVU_H
> >
> > #include <linux/pci.h>
> > +#include <net/devlink.h>
> > +
> > #include "rvu_struct.h"
> > +#include "rvu_devlink.h"
> > #include "common.h"
> > #include "mbox.h"
> >
> > @@ -372,10 +375,10 @@ struct rvu {
> > struct npc_kpu_profile_adapter kpu;
> >
> > struct ptp *ptp;
> > -
>
> accidentally removed this line?
Yes.
>
> > #ifdef CONFIG_DEBUG_FS
> > struct rvu_debugfs rvu_dbg;
> > #endif
> > + struct rvu_devlink *rvu_dl;
> > };
>
>
> > +int rvu_register_dl(struct rvu *rvu)
> > +{
> > + struct rvu_devlink *rvu_dl;
> > + struct devlink *dl;
> > + int err;
> > +
> > + rvu_dl = kzalloc(sizeof(*rvu_dl), GFP_KERNEL);
> > + if (!rvu_dl)
> > + return -ENOMEM;
> > +
> > + dl = devlink_alloc(&rvu_devlink_ops, sizeof(struct rvu_devlink));
> > + if (!dl) {
> > + dev_warn(rvu->dev, "devlink_alloc failed\n");
> > + return -ENOMEM;
>
> rvu_dl not freed on error.
Thanks for pointing out, will address in v2.
>
> This happens a couple of times in these patches
Will fix it.
>
> Is the intermediate struct needed, or could you embed the fields directly into
> rvu and use container_of to get from devlink to struct rvu? Even if needed,
> perhaps easier to embed the struct into rvu rather than a pointer.
Currently only 2 hardware blocks are supported NIX and NPA.
Error reporting for more HW blocks will be added, that’s the reason for the intermediate struct.
>
> > + }
> > +
> > + err = devlink_register(dl, rvu->dev);
> > + if (err) {
> > + dev_err(rvu->dev, "devlink register failed with error %d\n", err);
> > + devlink_free(dl);
> > + return err;
> > + }
> > +
> > + rvu_dl->dl = dl;
> > + rvu_dl->rvu = rvu;
> > + rvu->rvu_dl = rvu_dl;
> > + return 0;
> > +}
> > +
> > +void rvu_unregister_dl(struct rvu *rvu) {
> > + struct rvu_devlink *rvu_dl = rvu->rvu_dl;
> > + struct devlink *dl = rvu_dl->dl;
> > +
> > + if (!dl)
> > + return;
> > +
> > + devlink_unregister(dl);
> > + devlink_free(dl);
>
> here too
Yes, will fix in v2.

Regards,
-George
\
 
 \ /
  Last update: 2020-11-03 04:39    [W:0.035 / U:1.140 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site