net/mlx5e: Verify encapsulation is supported
authorEli Cohen <eli@mellanox.com>
Thu, 27 Jun 2019 05:34:41 +0000 (08:34 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Mon, 15 Jul 2019 20:04:04 +0000 (13:04 -0700)
When mlx5e_attach_encap() calls mlx5e_get_tc_tun() to get the tunnel
info data struct, check that returned value is not NULL, as would be in
the case of unsupported encapsulation.

Fixes: d386939a327d2 ("net/mlx5e: Rearrange tc tunnel code in a modular way")
Signed-off-by: Eli Cohen <eli@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c

index 2d6436257f9d8fb70d7f057617bd4361b75e29a1..018709a4343fe4a07d3763dce54803d4db05314c 100644 (file)
@@ -2647,6 +2647,10 @@ static int mlx5e_attach_encap(struct mlx5e_priv *priv,
        family = ip_tunnel_info_af(tun_info);
        key.ip_tun_key = &tun_info->key;
        key.tc_tunnel = mlx5e_get_tc_tun(mirred_dev);
+       if (!key.tc_tunnel) {
+               NL_SET_ERR_MSG_MOD(extack, "Unsupported tunnel");
+               return -EOPNOTSUPP;
+       }
 
        hash_key = hash_encap_info(&key);