mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 14:04:54 +02:00
net/mlx4_en: Avoid changing dev->features directly in run-time
[ Upstream commit925ab1aa93] It's forbidden to manually change dev->features in run-time. Currently, this is done in the driver to make sure that GSO_UDP_TUNNEL is advertized only when VXLAN tunnel is set. However, since the stack actually does features intersection with hw_enc_features, we can safely revert to advertizing features early when registering the netdevice. Fixes:f4a1edd561('net/mlx4_en: Advertize encapsulation offloads [...]') Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
7675c3c6bd
commit
1cabc3e35f
|
|
@ -2381,8 +2381,6 @@ static void mlx4_en_add_vxlan_offloads(struct work_struct *work)
|
|||
/* set offloads */
|
||||
priv->dev->hw_enc_features |= NETIF_F_IP_CSUM | NETIF_F_RXCSUM |
|
||||
NETIF_F_TSO | NETIF_F_GSO_UDP_TUNNEL;
|
||||
priv->dev->hw_features |= NETIF_F_GSO_UDP_TUNNEL;
|
||||
priv->dev->features |= NETIF_F_GSO_UDP_TUNNEL;
|
||||
}
|
||||
|
||||
static void mlx4_en_del_vxlan_offloads(struct work_struct *work)
|
||||
|
|
@ -2393,8 +2391,6 @@ static void mlx4_en_del_vxlan_offloads(struct work_struct *work)
|
|||
/* unset offloads */
|
||||
priv->dev->hw_enc_features &= ~(NETIF_F_IP_CSUM | NETIF_F_RXCSUM |
|
||||
NETIF_F_TSO | NETIF_F_GSO_UDP_TUNNEL);
|
||||
priv->dev->hw_features &= ~NETIF_F_GSO_UDP_TUNNEL;
|
||||
priv->dev->features &= ~NETIF_F_GSO_UDP_TUNNEL;
|
||||
|
||||
ret = mlx4_SET_PORT_VXLAN(priv->mdev->dev, priv->port,
|
||||
VXLAN_STEER_BY_OUTER_MAC, 0);
|
||||
|
|
@ -3020,6 +3016,11 @@ int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port,
|
|||
priv->rss_hash_fn = ETH_RSS_HASH_TOP;
|
||||
}
|
||||
|
||||
if (mdev->dev->caps.tunnel_offload_mode == MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) {
|
||||
dev->hw_features |= NETIF_F_GSO_UDP_TUNNEL;
|
||||
dev->features |= NETIF_F_GSO_UDP_TUNNEL;
|
||||
}
|
||||
|
||||
mdev->pndev[port] = dev;
|
||||
mdev->upper[port] = NULL;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user