Thread (13 messages) read the whole thread 13 messages, 4 authors, 2026-05-20

RE: [Intel-wired-lan] [PATCH net v5 1/4] iavf: return EBUSY if reset in progress or not ready during MAC change

From: Romanowski, Rafal <hidden>
Date: 2026-05-20 08:04:28
Also in: intel-wired-lan

quoted hunk ↗ jump to hunk
-----Original Message-----
From: Intel-wired-lan <redacted> On Behalf Of Jose
Ignacio Tornos Martinez
Sent: Wednesday, April 29, 2026 12:24 PM
To: netdev@vger.kernel.org
Cc: intel-wired-lan@lists.osuosl.org; Kitszel, Przemyslaw
[off-list ref]; Loktionov, Aleksandr
[off-list ref]; Keller, Jacob E [off-list ref];
horms@kernel.org; jesse.brandeburg@intel.com; Nguyen, Anthony L
[off-list ref]; davem@davemloft.net; edumazet@google.com;
kuba@kernel.org; pabeni@redhat.com; Jose Ignacio Tornos Martinez
[off-list ref]
Subject: [Intel-wired-lan] [PATCH net v5 1/4] iavf: return EBUSY if reset in
progress or not ready during MAC change

When a MAC address change is requested while the VF is resetting or still
initializing, return -EBUSY immediately instead of attempting the operation.

Additionally, during early initialization states (before __IAVF_DOWN), the PF may
be slow to respond to MAC change requests, causing long delays. Only allow MAC
changes once the VF reaches __IAVF_DOWN state or later, when the watchdog is
running and the VF is ready for operations.

After commit ad7c7b2172c3 ("net: hold netdev instance lock during sysfs
operations"), MAC changes are called with the netdev lock held, so we should not
wait with the lock held during reset or initialization. This allows the caller to retry
or handle the busy state appropriately without blocking other operations.

Signed-off-by: Jose Ignacio Tornos Martinez <redacted>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: Aleksandr Loktionov <redacted>
---

 drivers/net/ethernet/intel/iavf/iavf_main.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c
b/drivers/net/ethernet/intel/iavf/iavf_main.c
index dad001abc908..67aa14350b1b 100644
--- a/drivers/net/ethernet/intel/iavf/iavf_main.c
+++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
@@ -1060,6 +1060,9 @@ static int iavf_set_mac(struct net_device *netdev, void
*p)
 	struct sockaddr *addr = p;
 	int ret;

+	if (iavf_is_reset_in_progress(adapter) || adapter->state <
__IAVF_DOWN)
+		return -EBUSY;
+
 	if (!is_valid_ether_addr(addr->sa_data))
 		return -EADDRNOTAVAIL;

--
2.53.0

Tested-by: Rafal Romanowski <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help