]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
ccr: Set the RX channel ID correctly in work requests.
authorJohn Baldwin <jhb@FreeBSD.org>
Fri, 12 Mar 2021 18:35:05 +0000 (10:35 -0800)
committerJohn Baldwin <jhb@FreeBSD.org>
Mon, 26 Apr 2021 19:01:15 +0000 (12:01 -0700)
commit9cdd43808ccdb1c1d579bcf57394196318e91efa
tree6b702728d7e0f078a4d0dde789ff8960c80c7212
parentcc76018cdd89880eea505b02ebd1d01cec247afb
ccr: Set the RX channel ID correctly in work requests.

These fixes are only relevant for requests on the second port.  In
some cases, the crypto completion data, completion message, and
receive descriptor could be written in the wrong order.

- Add a separate rx_channel_id that is a copy of the port's rx_c_chan
  and use it when an RX channel ID is required in crypto requests
  instead of using the tx_channel_id.

- Set the correct rx_channel_id in the CPL_RX_PHYS_ADDR used to write
  the crypto result.

- Set the FID to the first rx queue ID on the adapter rather than the
  queue ID of the first rx queue for the port.

- While here, use tx_chan to set the tx_channel_id though this is
  identical to the previous value.

Reported by: Chelsio QA
Sponsored by: Chelsio Communications

(cherry picked from commit 8f885fd1f38159a06db82d680fa259f358e9f872)
sys/dev/cxgbe/crypto/t4_crypto.c