net/mlx5e: Enable XDP for Connect-X IPsec capable devices
authorRaed Salem <raeds@nvidia.com>
Mon, 25 Jan 2021 07:58:22 +0000 (09:58 +0200)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 12 Feb 2021 02:50:10 +0000 (18:50 -0800)
This limitation was inherited by previous Innova (FPGA) IPsec
implementation, it uses its private set of RQ handlers which
does not support XDP, for Connect-X this is no longer true.

Fix by keeping this limitation only for Innova IPsec supporting devices,
as otherwise this limitation effectively wrongly blocks XDP for all
future Connect-X devices for all flows even if IPsec offload is not
used.

Fixes: 2d64663cd559 ("net/mlx5: IPsec: Add HW crypto offload support")
Signed-off-by: Raed Salem <raeds@nvidia.com>
Reviewed-by: Alaa Hleihel <alaa@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en_main.c

index 0ae22a0..5052820 100644 (file)
@@ -4456,8 +4456,9 @@ static int mlx5e_xdp_allowed(struct mlx5e_priv *priv, struct bpf_prog *prog)
                return -EINVAL;
        }
 
-       if (MLX5_IPSEC_DEV(priv->mdev)) {
-               netdev_warn(netdev, "can't set XDP with IPSec offload\n");
+       if (mlx5_fpga_is_ipsec_device(priv->mdev)) {
+               netdev_warn(netdev,
+                           "XDP is not available on Innova cards with IPsec support\n");
                return -EINVAL;
        }