• Jacob Keller's avatar
    i40evf: use __dev_[um]c_sync routines in .set_rx_mode · 8946b563
    Jacob Keller authored
    Similar to changes done to the PF driver in commit 6622f5cd ("i40e:
    make use of __dev_uc_sync and __dev_mc_sync"), replace our
    home-rolled method for updating the internal status of MAC filters with
    __dev_uc_sync and __dev_mc_sync.
    
    These new functions use internal state within the netdev struct in order
    to efficiently break the question of "which filters in this list need to
    be added or removed" into singular "add this filter" and "delete this
    filter" requests.
    
    This vastly improves our handling of .set_rx_mode especially with large
    number of MAC filters being added to the device, and even results in
    a simpler .set_rx_mode handler.
    
    Under some circumstances, such as when attached to a bridge, we may
    receive a request to delete our own permanent address. Prevent deletion
    of this address during i40evf_addr_unsync so that we don't accidentally
    stop receiving traffic.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    8946b563
i40evf_main.c 87.9 KB