Page MenuHomeFreeBSD

sfxge(4): ignore error in completion event on MCDIv2 HW
ClosedPublic

Authored by arybchik on Nov 21 2018, 11:23 AM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 31 2024, 8:05 PM
Unknown Object (File)
Dec 31 2023, 1:46 PM
Unknown Object (File)
Dec 22 2023, 9:55 PM
Unknown Object (File)
Sep 16 2023, 3:41 PM
Unknown Object (File)
Aug 25 2023, 2:56 AM
Unknown Object (File)
Jul 3 2023, 4:22 PM
Unknown Object (File)
Jun 15 2023, 4:10 PM
Unknown Object (File)
Jun 3 2023, 7:48 AM
Subscribers

Details

Summary

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.

Test Plan

amd64 tinderbox kernel builds tested
driver loaded/unloaded, interfaces up/down, traffic works fine

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 20960
Build 20325: arc lint + arc unit

Event Timeline

This revision was not accepted when it landed; it landed in state Needs Review.Nov 23 2018, 4:00 PM
This revision was automatically updated to reflect the committed changes.