]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux.git] / drivers / net / ethernet / mellanox / mlx5 / core / en / tc_tun.c
index fa2a3c444cdc604c308999f140a3125becd9c8d3..fe5d4d7f15edc80426bed373e2bf646dfd39dde7 100644 (file)
@@ -39,6 +39,10 @@ static int get_route_and_out_devs(struct mlx5e_priv *priv,
                        return -EOPNOTSUPP;
        }
 
+       if (!(mlx5e_eswitch_rep(*out_dev) &&
+             mlx5e_is_uplink_rep(netdev_priv(*out_dev))))
+               return -EOPNOTSUPP;
+
        return 0;
 }
 
@@ -70,7 +74,7 @@ static int mlx5e_route_lookup_ipv4(struct mlx5e_priv *priv,
        if (ret)
                return ret;
 
-       if (mlx5_lag_is_multipath(mdev) && !rt->rt_gateway)
+       if (mlx5_lag_is_multipath(mdev) && rt->rt_gw_family != AF_INET)
                return -ENETUNREACH;
 #else
        return -EOPNOTSUPP;
@@ -96,7 +100,7 @@ static const char *mlx5e_netdev_kind(struct net_device *dev)
        if (dev->rtnl_link_ops)
                return dev->rtnl_link_ops->kind;
        else
-               return "";
+               return "unknown";
 }
 
 static int mlx5e_route_lookup_ipv6(struct mlx5e_priv *priv,
@@ -636,8 +640,10 @@ int mlx5e_tc_tun_parse(struct net_device *filter_dev,
                                                headers_c, headers_v);
        } else {
                netdev_warn(priv->netdev,
-                           "decapsulation offload is not supported for %s net device (%d)\n",
-                           mlx5e_netdev_kind(filter_dev), tunnel_type);
+                           "decapsulation offload is not supported for %s (kind: \"%s\")\n",
+                           netdev_name(filter_dev),
+                           mlx5e_netdev_kind(filter_dev));
+
                return -EOPNOTSUPP;
        }
        return err;