HomeFreeBSD

cxgbe(4): Fix a couple of problems in the sge_wrq data path.

Description

cxgbe(4): Fix a couple of problems in the sge_wrq data path.

  • start_wrq_wr must not drain the wr_list if there are incomplete_wrs pending. This can happen when a t4_wrq_tx runs between two start_wrq_wr.
  • commit_wrq_wr must examine the cookie's pidx and ndesc with the queue's lock held. Otherwise there is a bad race when incomplete WRs are being completed and commit_wrq_wr for the WR that is ahead in the queue updates the next incomplete WR's cookie's pidx/ndesc but the commit_wrq_wr for the second one is using stale values that it read without the lock.

MFC after: 1 week
Sponsored by: Chelsio Communications

Details

Provenance
npAuthored on
Parents
rS323342: The purge option hasn't been implemented since 1994 when we imported this
Branches
Unknown
Tags
Unknown