Netdev List
 help / color / mirror / Atom feed
* [PATCH iwl-next 0/2] iavf: two small logging improvements
@ 2026-05-22  2:57 Aleksandr Loktionov
  2026-05-22  2:57 ` [PATCH iwl-next 1/2] iavf: log PF diagnostic message on cloud filter add failure Aleksandr Loktionov
  2026-05-22  2:57 ` [PATCH iwl-next 2/2] iavf: log primary MAC address confirmed by PF Aleksandr Loktionov
  0 siblings, 2 replies; 4+ messages in thread
From: Aleksandr Loktionov @ 2026-05-22  2:57 UTC (permalink / raw)
  To: intel-wired-lan, anthony.l.nguyen, aleksandr.loktionov; +Cc: netdev

Assorted small logging improvements for iavf. Add a dev_info() forwarding
the PF's own diagnostic string when a cloud filter add fails, and print a
netdev_info() when the PF confirms the primary MAC address.

Improvements only, no fixes; suitable for net-next.

Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>

Aleksandr Loktionov (2):
  iavf: log PF diagnostic message on cloud filter add failure
  iavf: log primary MAC address confirmed by PF

---
 drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 25 +++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

-- 
2.52.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH iwl-next 1/2] iavf: log PF diagnostic message on cloud filter add failure
  2026-05-22  2:57 [PATCH iwl-next 0/2] iavf: two small logging improvements Aleksandr Loktionov
@ 2026-05-22  2:57 ` Aleksandr Loktionov
  2026-05-26 19:40   ` Simon Horman
  2026-05-22  2:57 ` [PATCH iwl-next 2/2] iavf: log primary MAC address confirmed by PF Aleksandr Loktionov
  1 sibling, 1 reply; 4+ messages in thread
From: Aleksandr Loktionov @ 2026-05-22  2:57 UTC (permalink / raw)
  To: intel-wired-lan, anthony.l.nguyen, aleksandr.loktionov; +Cc: netdev

When the PF rejects a cloud filter add request it may include a
diagnostic string in the virtchnl response. Use dev_info() to log it
so operators can diagnose offload failures without enabling verbose
tracing.

Use %.*s with an explicit length bound to avoid reading past the end of
the message buffer when the PF fills all 4096 bytes and leaves no NUL
terminator. Add the missing cloud_filter_list_lock around both the
VIRTCHNL_OP_ADD_CLOUD_FILTER and VIRTCHNL_OP_DEL_CLOUD_FILTER error
paths to close a pre-existing race against iavf_add_cloud_filter() and
iavf_del_cloud_filter(). Apply the same %.*s fix to the equivalent
VIRTCHNL_OP_ADD_FDIR_FILTER error path which carried the same bug.

Suggested-by: Grzegorz Szczurek <grzegorzx.szczurek@intel.com>
Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
---
 drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
index 4f2defd..146fc680 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c
@@ -2388,6 +2388,7 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
 		case VIRTCHNL_OP_ADD_CLOUD_FILTER: {
 			struct iavf_cloud_filter *cf, *cftmp;
 
+			spin_lock_bh(&adapter->cloud_filter_list_lock);
 			list_for_each_entry_safe(cf, cftmp,
 						 &adapter->cloud_filter_list,
 						 list) {
@@ -2398,16 +2399,23 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
 							       v_retval));
 					iavf_print_cloud_filter(adapter,
 								&cf->f);
+					if (msglen)
+						dev_info(&adapter->pdev->dev,
+							 "%.*s\n",
+							 (int)msglen,
+							 (const char *)msg);
 					list_del(&cf->list);
 					kfree(cf);
 					adapter->num_cloud_filters--;
 				}
 			}
+			spin_unlock_bh(&adapter->cloud_filter_list_lock);
 			}
 			break;
 		case VIRTCHNL_OP_DEL_CLOUD_FILTER: {
 			struct iavf_cloud_filter *cf;
 
+			spin_lock_bh(&adapter->cloud_filter_list_lock);
 			list_for_each_entry(cf, &adapter->cloud_filter_list,
 					    list) {
 				if (cf->state == __IAVF_CF_DEL_PENDING) {
@@ -2419,6 +2427,7 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
 								&cf->f);
 				}
 			}
+			spin_unlock_bh(&adapter->cloud_filter_list_lock);
 			}
 			break;
 		case VIRTCHNL_OP_ADD_FDIR_FILTER: {
@@ -2434,8 +2443,10 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
 							       v_retval));
 					iavf_print_fdir_fltr(adapter, fdir);
 					if (msglen)
-						dev_err(&adapter->pdev->dev,
-							"%s\n", msg);
+						dev_info(&adapter->pdev->dev,
+							 "%.*s\n",
+							 (int)msglen,
+							 (const char *)msg);
 					list_del(&fdir->list);
 					iavf_dec_fdir_active_fltr(adapter, fdir);
 					kfree(fdir);
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH iwl-next 2/2] iavf: log primary MAC address confirmed by PF
  2026-05-22  2:57 [PATCH iwl-next 0/2] iavf: two small logging improvements Aleksandr Loktionov
  2026-05-22  2:57 ` [PATCH iwl-next 1/2] iavf: log PF diagnostic message on cloud filter add failure Aleksandr Loktionov
@ 2026-05-22  2:57 ` Aleksandr Loktionov
  1 sibling, 0 replies; 4+ messages in thread
From: Aleksandr Loktionov @ 2026-05-22  2:57 UTC (permalink / raw)
  To: intel-wired-lan, anthony.l.nguyen, aleksandr.loktionov; +Cc: netdev

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 <norbertx.zulinski@intel.com>
Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
---
 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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH iwl-next 1/2] iavf: log PF diagnostic message on cloud filter add failure
  2026-05-22  2:57 ` [PATCH iwl-next 1/2] iavf: log PF diagnostic message on cloud filter add failure Aleksandr Loktionov
@ 2026-05-26 19:40   ` Simon Horman
  0 siblings, 0 replies; 4+ messages in thread
From: Simon Horman @ 2026-05-26 19:40 UTC (permalink / raw)
  To: Aleksandr Loktionov; +Cc: intel-wired-lan, anthony.l.nguyen, netdev

On Fri, May 22, 2026 at 04:57:01AM +0200, Aleksandr Loktionov wrote:
> When the PF rejects a cloud filter add request it may include a
> diagnostic string in the virtchnl response. Use dev_info() to log it
> so operators can diagnose offload failures without enabling verbose
> tracing.
> 
> Use %.*s with an explicit length bound to avoid reading past the end of
> the message buffer when the PF fills all 4096 bytes and leaves no NUL
> terminator. Add the missing cloud_filter_list_lock around both the
> VIRTCHNL_OP_ADD_CLOUD_FILTER and VIRTCHNL_OP_DEL_CLOUD_FILTER error
> paths to close a pre-existing race against iavf_add_cloud_filter() and
> iavf_del_cloud_filter(). Apply the same %.*s fix to the equivalent
> VIRTCHNL_OP_ADD_FDIR_FILTER error path which carried the same bug.

This seems to be doing several things. So I would suggest it warrants
being split into several patches.

And, if they are fixes, some consideration should be given
to targeting iwl and including Fixes tags in the patches.

Partially flagged by: https://netdev-ai.bots.linux.dev/sashiko/


Also, the locking fix here is made to the error path,
but not the non-error path (v_retval == 0) where
the VIRTCHNL_OP_ADD_CLOUD_FILTER and VIRTCHNL_OP_DEL_CLOUD_FILTER cases
traverse and update  cloud_filter_list.

Flagged by https://sashiko.dev/


> Suggested-by: Grzegorz Szczurek <grzegorzx.szczurek@intel.com>
> Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> ---
>  drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c

...

> @@ -2434,8 +2443,10 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
>  							       v_retval));
>  					iavf_print_fdir_fltr(adapter, fdir);
>  					if (msglen)
> -						dev_err(&adapter->pdev->dev,
> -							"%s\n", msg);
> +						dev_info(&adapter->pdev->dev,
> +							 "%.*s\n",
> +							 (int)msglen,
> +							 (const char *)msg);

As well as addressing the length of msg, ad described in the commit
message, this also changes the priority of the message from err to info.
This seems to be a separate change that is not mentioned in the commit
message.

Also flagged by: https://sashiko.dev/

>  					list_del(&fdir->list);
>  					iavf_dec_fdir_active_fltr(adapter, fdir);
>  					kfree(fdir);

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-05-26 19:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-22  2:57 [PATCH iwl-next 0/2] iavf: two small logging improvements Aleksandr Loktionov
2026-05-22  2:57 ` [PATCH iwl-next 1/2] iavf: log PF diagnostic message on cloud filter add failure Aleksandr Loktionov
2026-05-26 19:40   ` Simon Horman
2026-05-22  2:57 ` [PATCH iwl-next 2/2] iavf: log primary MAC address confirmed by PF Aleksandr Loktionov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox