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 <bor...@mellanox.com> CC: Saeed Mahameed <sae...@mellanox.com> CC: Leon Romanovsky <l...@kernel.org> CC: Jay Vosburgh <j.vosbu...@gmail.com> CC: Veaceslav Falico <vfal...@gmail.com> CC: Andy Gospodarek <a...@greyhouse.net> CC: "David S. Miller" <da...@davemloft.net> CC: Jeff Kirsher <jeffrey.t.kirs...@intel.com> CC: Jakub Kicinski <k...@kernel.org> CC: Steffen Klassert <steffen.klass...@secunet.com> CC: Herbert Xu <herb...@gondor.apana.org.au> CC: netdev@vger.kernel.org Signed-off-by: Jarod Wilson <ja...@redhat.com> --- 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; + 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); -- 2.20.1