Skip to content

Commit

Permalink
igc: Add debug messages to MAC filter code
Browse files Browse the repository at this point in the history
This patch adds log messages to functions related to the MAC address
filtering code to ease debugging.

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>
  • Loading branch information
Andre Guedes authored and Jeff Kirsher committed Apr 19, 2020
1 parent 5f93071 commit 949b922
Showing 1 changed file with 22 additions and 2 deletions.
24 changes: 22 additions & 2 deletions drivers/net/ethernet/intel/igc/igc_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -776,6 +776,7 @@ static void igc_setup_tctl(struct igc_adapter *adapter)
static void igc_set_mac_filter_hw(struct igc_adapter *adapter, int index,
const u8 *addr, int queue)
{
struct net_device *dev = adapter->netdev;
struct igc_hw *hw = &adapter->hw;
u32 ral, rah;

Expand All @@ -795,6 +796,8 @@ static void igc_set_mac_filter_hw(struct igc_adapter *adapter, int index,

wr32(IGC_RAL(index), ral);
wr32(IGC_RAH(index), rah);

netdev_dbg(dev, "MAC address filter set in HW: index %d", index);
}

/**
Expand All @@ -804,25 +807,32 @@ static void igc_set_mac_filter_hw(struct igc_adapter *adapter, int index,
*/
static void igc_clear_mac_filter_hw(struct igc_adapter *adapter, int index)
{
struct net_device *dev = adapter->netdev;
struct igc_hw *hw = &adapter->hw;

if (WARN_ON(index >= hw->mac.rar_entry_count))
return;

wr32(IGC_RAL(index), 0);
wr32(IGC_RAH(index), 0);

netdev_dbg(dev, "MAC address filter cleared in HW: index %d", index);
}

/* Set default MAC address for the PF in the first RAR entry */
static void igc_set_default_mac_filter(struct igc_adapter *adapter)
{
struct igc_mac_addr *mac_table = &adapter->mac_table[0];
struct net_device *dev = adapter->netdev;
u8 *addr = adapter->hw.mac.addr;

netdev_dbg(dev, "Set default MAC address filter: address %pM", addr);

ether_addr_copy(mac_table->addr, adapter->hw.mac.addr);
ether_addr_copy(mac_table->addr, addr);
mac_table->state = IGC_MAC_STATE_DEFAULT | IGC_MAC_STATE_IN_USE;
mac_table->queue = -1;

igc_set_mac_filter_hw(adapter, 0, mac_table->addr, mac_table->queue);
igc_set_mac_filter_hw(adapter, 0, addr, mac_table->queue);
}

/**
Expand Down Expand Up @@ -2231,6 +2241,7 @@ static int igc_get_avail_mac_filter_slot(struct igc_adapter *adapter)
int igc_add_mac_filter(struct igc_adapter *adapter, const u8 *addr,
const s8 queue, const u8 flags)
{
struct net_device *dev = adapter->netdev;
int index;

if (!is_valid_ether_addr(addr))
Expand All @@ -2246,6 +2257,9 @@ int igc_add_mac_filter(struct igc_adapter *adapter, const u8 *addr,
if (index < 0)
return -ENOSPC;

netdev_dbg(dev, "Add MAC address filter: index %d address %pM queue %d",
index, addr, queue);

ether_addr_copy(adapter->mac_table[index].addr, addr);
adapter->mac_table[index].state |= IGC_MAC_STATE_IN_USE | flags;
update_queue_assignment:
Expand All @@ -2267,6 +2281,7 @@ int igc_add_mac_filter(struct igc_adapter *adapter, const u8 *addr,
int igc_del_mac_filter(struct igc_adapter *adapter, const u8 *addr,
const u8 flags)
{
struct net_device *dev = adapter->netdev;
struct igc_mac_addr *entry;
int index;

Expand All @@ -2284,9 +2299,14 @@ int igc_del_mac_filter(struct igc_adapter *adapter, const u8 *addr,
* We just reset to its default value i.e. disable queue
* assignment.
*/
netdev_dbg(dev, "Disable default MAC filter queue assignment");

entry->queue = -1;
igc_set_mac_filter_hw(adapter, 0, addr, entry->queue);
} else {
netdev_dbg(dev, "Delete MAC address filter: index %d address %pM",
index, addr);

entry->state = 0;
entry->queue = -1;
memset(entry->addr, 0, ETH_ALEN);
Expand Down

0 comments on commit 949b922

Please sign in to comment.