• Marcin Szycik's avatar
    ice: Clear synchronized addrs when adding VFs in switchdev mode · c79bb28e
    Marcin Szycik authored
    When spawning VFs in switchdev mode, internal filter list of VSIs is
    cleared, which includes MAC rules. However MAC entries stay on netdev's
    multicast list, which causes error message when bringing link up after
    spawning VFs ("Failed to delete MAC filters"). __dev_mc_sync() is
    called and tries to unsync addresses that were already removed
    internally when adding VFs.
    
    This can be reproduced with:
    1) Load ice driver
    2) Change PF to switchdev mode
    3) Bring PF link up
    4) Bring PF link down
    5) Create a VF on PF
    6) Bring PF link up
    
    Added clearing of netdev's multicast (and also unicast) list when
    spawning VFs in switchdev mode, so the state of internal rule list and
    netdev's MAC list is consistent.
    
    Fixes: 1a1c40df ("ice: set and release switchdev environment")
    Signed-off-by: default avatarMarcin Szycik <marcin.szycik@linux.intel.com>
    Tested-by: default avatarSandeep Penigalapati <sandeep.penigalapati@intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    c79bb28e
ice_eswitch.c 16.3 KB