]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
sfxge(4): ignore error in completion event on MCDIv2 HW
authorAndrew Rybchenko <arybchik@FreeBSD.org>
Fri, 23 Nov 2018 15:59:49 +0000 (15:59 +0000)
committerAndrew Rybchenko <arybchik@FreeBSD.org>
Fri, 23 Nov 2018 15:59:49 +0000 (15:59 +0000)
commit9d89c911bb68f103131ba7a1caa9a28ea48830d0
tree08a15ed8e4b5a0e4cec2506b2e69234670ba2fcd
parent641c3370f4f62b656812794c2cc2910da9e64990
sfxge(4): 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.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
Differential Revision:  https://reviews.freebsd.org/D18104
sys/dev/sfxge/common/efx_mcdi.c