• Andre Guedes's avatar
    igc: Refactor ethertype filtering code · aa7ca726
    Andre Guedes authored
    The whole ethertype filtering code is implemented in igc_ethtool.c and
    mixes logic from ethtool and core parts. This patch refactors it so core
    logic is moved to igc_main.c, aligning the ethertype filtering code
    organization with the rest of the filtering code from the driver (MAC
    address and VLAN priority).
    
    Besides moving code to igc_main.c, this patch also does some minor
    improvements to the code. Below are some highlights.
    
    In case all filters are already in use and the user tries to add another
    filter, we return -ENOSPC instead of -EINVAL so a more meaningful error
    code is provided. This also aligns with the behavior implemented in MAC
    address filtering code.
    
    With this code refactoring, 'etype_bitmap' array in struct igc_adapter
    and 'etype_reg_index' in struct igc_nfc_filter are not needed anymore
    and are removed.
    
    Log messages are added to help debugging the ethertype filtering code.
    Signed-off-by: default avatarAndre Guedes <andre.guedes@intel.com>
    Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    aa7ca726
igc_main.c 141 KB