• Michal Swiatkowski's avatar
    ice: clear port vlan config during reset · d019b1a9
    Michal Swiatkowski authored
    Since commit 2a2cb4c6 ("ice: replace ice_vf_recreate_vsi() with
    ice_vf_reconfig_vsi()") VF VSI is only reconfigured instead of
    recreated. The context configuration from previous setting is still the
    same. If any of the config needs to be cleared it needs to be cleared
    explicitly.
    
    Previously there was assumption that port vlan will be cleared
    automatically. Now, when VSI is only reconfigured we have to do it in the
    code.
    
    Not clearing port vlan configuration leads to situation when the driver
    VSI config is different than the VSI config in HW. Traffic can't be
    passed after setting and clearing port vlan, because of invalid VSI
    config in HW.
    
    Example reproduction:
    > ip a a dev $(VF) $(VF_IP_ADDRESS)
    > ip l s dev $(VF) up
    > ping $(VF_IP_ADDRESS)
    ping is working fine here
    > ip link set eth5 vf 0 vlan 100
    > ip link set eth5 vf 0 vlan 0
    > ping $(VF_IP_ADDRESS)
    ping isn't working
    
    Fixes: 2a2cb4c6 ("ice: replace ice_vf_recreate_vsi() with ice_vf_reconfig_vsi()")
    Signed-off-by: default avatarMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
    Reviewed-by: default avatarWojciech Drewek <wojciech.drewek@intel.com>
    Tested-by: default avatarPiotr Tyda <piotr.tyda@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    d019b1a9
ice_vsi_vlan_lib.c 23.9 KB