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 <[email protected]>
> CC: Saeed Mahameed <[email protected]>
> CC: Leon Romanovsky <[email protected]>
> CC: Jay Vosburgh <[email protected]>
> CC: Veaceslav Falico <[email protected]>
> CC: Andy Gospodarek <[email protected]>
> CC: "David S. Miller" <[email protected]>
> CC: Jeff Kirsher <[email protected]>
> CC: Jakub Kicinski <[email protected]>
> CC: Steffen Klassert <[email protected]>
> CC: Herbert Xu <[email protected]>
> CC: [email protected]
> Signed-off-by: Jarod Wilson <[email protected]>
> ---
>  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..


>       priv = netdev_priv(netdev);
>  
>       if (x->props.aalgo != SADB_AALG_NONE) {
> @@ -291,6 +294,9 @@ static int mlx5e_xfrm_add_state(struct xfrm_state
> *x)
>       unsigned int sa_handle;
>       int err;
>  
> +     if (x->xso.slave_dev)
> +             netdev = x->xso.slave_dev;
> +
>       priv = netdev_priv(netdev);
>  
>       err = mlx5e_xfrm_validate_state(x);

Reply via email to