> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf Of > Aleksandr Loktionov > Sent: Tuesday, June 25, 2024 11:50 AM > To: [email protected]; Nguyen, Anthony L > <[email protected]>; Loktionov, Aleksandr > <[email protected]> > Cc: [email protected]; Kang, Kelvin <[email protected]>; > Kubalewski, Arkadiusz <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-net v5] i40e: fix: remove needless > retries > of NVM update > > Remove wrong EIO to EGAIN conversion and pass all errors as is. > > After commit 230f3d53a547 ("i40e: remove i40e_status"), which should only > replace F/W specific error codes with Linux kernel generic, all EIO errors > suddenly started to be converted into EAGAIN which leads nvmupdate to > retry until it timeouts and sometimes fails after more than 20 minutes in the > middle of NVM update, so NVM becomes corrupted. > > The bug affects users only at the time when they try to update NVM, and only > F/W versions that generate errors while nvmupdate. For example, X710DA2 > with 0x8000ECB7 F/W is affected, but there are probably more... > > Command for reproduction is just NVM update: > ./nvmupdate64 > > In the log instead of: > i40e_nvmupd_exec_aq err I40E_ERR_ADMIN_QUEUE_ERROR aq_err > I40E_AQ_RC_ENOMEM) > appears: > i40e_nvmupd_exec_aq err -EIO aq_err I40E_AQ_RC_ENOMEM > i40e: eeprom check failed (-5), Tx/Rx traffic disabled > > The problematic code did silently convert EIO into EAGAIN which forced > nvmupdate to ignore EAGAIN error and retry the same operation until > timeout. > That's why NVM update takes 20+ minutes to finish with the fail in the end. > > Fixes: 230f3d53a547 ("i40e: remove i40e_status") > Co-developed-by: Kelvin Kang <[email protected]> > Signed-off-by: Kelvin Kang <[email protected]> > Reviewed-by: Arkadiusz Kubalewski <[email protected]> > Signed-off-by: Aleksandr Loktionov <[email protected]> > --- > v4->v5 commit message update > https://lore.kernel.org/netdev/20240618132111.3193963-1- > [email protected]/T/#u > v3->v4 commit message update > v2->v3 commit messege typos > v1->v2 commit message update > --- > drivers/net/ethernet/intel/i40e/i40e_adminq.h | 4 ---- > 1 file changed, 4 deletions(-)
Tested-by: Tony Brelinski <[email protected]>
