Re: [PATCH net-next v2 3/4] mlx5: become aware of when running as a bonding slave
From: Jarod Wilson
Date: Sun Jun 21 2020 - 16:25:25 EST
On Thu, Jun 11, 2020 at 5:51 PM Saeed Mahameed <saeedm@xxxxxxxxxxxx> wrote:
>
> On Wed, 2020-06-10 at 14:59 -0400, Jarod Wilson wrote:
> > I've been unable to get my hands on suitable supported hardware to
> > date,
> > but I believe this ought to be all that is needed to enable the mlx5
> > driver to also work with bonding active-backup crypto offload
> > passthru.
> >
> > CC: Boris Pismenny <borisp@xxxxxxxxxxxx>
> > CC: Saeed Mahameed <saeedm@xxxxxxxxxxxx>
> > CC: Leon Romanovsky <leon@xxxxxxxxxx>
> > CC: Jay Vosburgh <j.vosburgh@xxxxxxxxx>
> > CC: Veaceslav Falico <vfalico@xxxxxxxxx>
> > CC: Andy Gospodarek <andy@xxxxxxxxxxxxx>
> > CC: "David S. Miller" <davem@xxxxxxxxxxxxx>
> > CC: Jeff Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
> > CC: Jakub Kicinski <kuba@xxxxxxxxxx>
> > CC: Steffen Klassert <steffen.klassert@xxxxxxxxxxx>
> > CC: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> > CC: netdev@xxxxxxxxxxxxxxx
> > Signed-off-by: Jarod Wilson <jarod@xxxxxxxxxx>
> > ---
> > drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c
> > b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c
> > index 92eb3bad4acd..72ad6664bd73 100644
> > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c
> > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c
> > @@ -210,6 +210,9 @@ static inline int
> > mlx5e_xfrm_validate_state(struct xfrm_state *x)
> > struct net_device *netdev = x->xso.dev;
> > struct mlx5e_priv *priv;
> >
> > + if (x->xso.slave_dev)
> > + netdev = x->xso.slave_dev;
> > +
>
> Do we really need to repeat this per driver ?
> why not just setup xso.real_dev, in xfrm layer once and for all before
> calling device drivers ?
>
> Device drivers will use xso.real_dev blindly.
>
> Will be useful in the future when you add vlan support, etc..
Apologies, I didn't catch your reply until just recently. Yeah, that
sounds like a better approach, if I can work it out cleanly. We just
init xso.real_dev to the same thing as xso.dev, then overwrite it in
the upper layer drivers (bonding, vlan, etc), while device drivers
just always use xso.real_dev, if I'm understanding your suggestion.
I'll see what I can come up with.
--
Jarod Wilson
jarod@xxxxxxxxxx