summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/intel/igc/igc_ethtool.c
diff options
context:
space:
mode:
authorAndre Guedes <andre.guedes@intel.com>2020-04-11 03:28:33 +0300
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2020-05-22 02:18:30 +0300
commit750433d0aa097265432a2b30a8a984604bd76e7f (patch)
tree21c4516d1c977ac5a1a463abed7232021dc5b79e /drivers/net/ethernet/intel/igc/igc_ethtool.c
parentd66358cae25efbd35518d661991fce67af2945e7 (diff)
downloadlinux-750433d0aa097265432a2b30a8a984604bd76e7f.tar.xz
igc: Add support for source address filters in core
This patch extends MAC address filter internal APIs igc_add_mac_filter() and igc_del_mac_filter(), as well as local helpers, to support filters based on source address. A new parameters 'type' is added to the APIs to indicate if the filter type is source or destination. In case it is source type, the RAH register is configured accordingly in igc_set_mac_filter_hw(). Signed-off-by: Andre Guedes <andre.guedes@intel.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/igc/igc_ethtool.c')
-rw-r--r--drivers/net/ethernet/intel/igc/igc_ethtool.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c
index 09d0305a5902..6c27046a852d 100644
--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c
+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c
@@ -1207,7 +1207,8 @@ int igc_add_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)
}
if (input->filter.match_flags & IGC_FILTER_FLAG_DST_MAC_ADDR) {
- err = igc_add_mac_filter(adapter, input->filter.dst_addr,
+ err = igc_add_mac_filter(adapter, IGC_MAC_FILTER_TYPE_DST,
+ input->filter.dst_addr,
input->action);
if (err)
return err;
@@ -1239,7 +1240,8 @@ int igc_erase_filter(struct igc_adapter *adapter, struct igc_nfc_filter *input)
}
if (input->filter.match_flags & IGC_FILTER_FLAG_DST_MAC_ADDR)
- igc_del_mac_filter(adapter, input->filter.dst_addr);
+ igc_del_mac_filter(adapter, IGC_MAC_FILTER_TYPE_DST,
+ input->filter.dst_addr);
return 0;
}