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.cb/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>