net/sfc/base: ignore error in completion event on MCDIv2 HW
authorMark Spender <mspender@solarflare.com>
Thu, 16 Nov 2017 08:04:16 +0000 (08:04 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 16 Jan 2018 17:47:49 +0000 (18:47 +0100)
commit596b7d428dc51d88a7ce24b385b8735cbe32b427
tree18ae6035c1434548adf7d14e5be97476234a2e8d
parent0f55ea2b7a52b7666cd30c4be9aeb6c28dda4085
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>
drivers/net/sfc/base/efx_mcdi.c