• Amir Tzin's avatar
    net/mlx5e: Fix crash unsetting rx-vlan-filter in switchdev mode · 8974aa96
    Amir Tzin authored
    Moving to switchdev mode with rx-vlan-filter on and then setting it off
    causes the kernel to crash since fs->vlan is freed during nic profile
    cleanup flow.
    
    RX VLAN filtering is not supported in switchdev mode so unset it when
    changing to switchdev and restore its value when switching back to
    legacy.
    
    trace:
    [] RIP: 0010:mlx5e_disable_cvlan_filter+0x43/0x70
    [] set_feature_cvlan_filter+0x37/0x40 [mlx5_core]
    [] mlx5e_handle_feature+0x3a/0x60 [mlx5_core]
    [] mlx5e_set_features+0x6d/0x160 [mlx5_core]
    [] __netdev_update_features+0x288/0xa70
    [] ethnl_set_features+0x309/0x380
    [] ? __nla_parse+0x21/0x30
    [] genl_family_rcv_msg_doit.isra.17+0x110/0x150
    [] genl_rcv_msg+0x112/0x260
    [] ? features_reply_size+0xe0/0xe0
    [] ? genl_family_rcv_msg_doit.isra.17+0x150/0x150
    [] netlink_rcv_skb+0x4e/0x100
    [] genl_rcv+0x24/0x40
    [] netlink_unicast+0x1ab/0x290
    [] netlink_sendmsg+0x257/0x4f0
    [] sock_sendmsg+0x5c/0x70
    
    Fixes: cb67b832 ("net/mlx5e: Introduce SRIOV VF representors")
    Signed-off-by: default avatarAmir Tzin <amirtz@nvidia.com>
    Reviewed-by: default avatarMaor Dickman <maord@nvidia.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
    8974aa96
en_main.c 153 KB