Print an informational message in iavf_mac_add_ok() when the PF
confirms the primary MAC filter. This gives operators a clear
confirmation of the active MAC address in dmesg.
Save the confirmed address to a local variable and emit the log after
releasing mac_vlan_list_lock to avoid holding a spinlock across printk.
Print f->macaddr directly rather than adapter->hw.mac.addr: the filter
address is the value the PF actually accepted and is protected by the
held lock, while hw.mac.addr is not.
Suggested-by: Norbert Zulinski <redacted>
Signed-off-by: Aleksandr Loktionov <redacted>
---
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
index 146fc680..62b0910 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
@@ -692,19 +692,31 @@ void iavf_del_ether_addrs(struct iavf_adapter *adapter)
* iavf_mac_add_ok
* @adapter: adapter structure
*
- * Submit list of filters based on PF response.
+ * Mark MAC filters as handled after PF confirms the add request.
+ * Logs the confirmed primary MAC address when applicable.
**/
static void iavf_mac_add_ok(struct iavf_adapter *adapter)
{
struct iavf_mac_filter *f, *ftmp;
+ u8 primary_mac[ETH_ALEN] = {};
+ bool log_primary = false;
spin_lock_bh(&adapter->mac_vlan_list_lock);
list_for_each_entry_safe(f, ftmp, &adapter->mac_filter_list, list) {
f->is_new_mac = false;
- if (!f->add && !f->add_handled)
+ if (!f->add && !f->add_handled) {
f->add_handled = true;
+ if (f->is_primary) {
+ ether_addr_copy(primary_mac, f->macaddr);
+ log_primary = true;
+ }
+ }
}
spin_unlock_bh(&adapter->mac_vlan_list_lock);
+
+ if (log_primary)
+ netdev_info(adapter->netdev,
+ "MAC address set to %pM\n", primary_mac);
}
/**--
2.52.0