net/sfc/base: ignore error in completion event on MCDIv2 HW
With MCDIv2, the reponse length can be to big to fit into the CMDDONE_DATALEN field in the MCDI completion event. But rather that the length being truncated, it can overflow into the CMDDONE_ERRNO field (this is a longstanding firmware bug). Hence the CMDDONE_ERRNO field may not be valid. It isn't necessary to use the value in the CMDDONE_ERRNO field though, so it can be ignored. The actual error code is already read from the response header on MCDIv2 capable hardware and stored in emr_rc, so that can be used instead. Signed-off-by: Mark Spender <mspender@solarflare.com> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
This commit is contained in:
parent
0f55ea2b7a
commit
596b7d428d
@ -793,9 +793,8 @@ efx_mcdi_ev_cpl(
|
||||
emrp->emr_rc = 0;
|
||||
}
|
||||
}
|
||||
if (errcode == 0) {
|
||||
if (emrp->emr_rc == 0)
|
||||
efx_mcdi_finish_response(enp, emrp);
|
||||
}
|
||||
|
||||
emtp->emt_ev_cpl(emtp->emt_context);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user