summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/chelsio
diff options
context:
space:
mode:
authorAtul Gupta2018-11-30 10:01:48 +0100
committerGreg Kroah-Hartman2019-01-09 17:38:44 +0100
commitcc43a8afa8e37cd466000ee1b4995e8f8e7b615d (patch)
tree54f02ac2d1afd94d5919bd80b190fc648ec057a0 /drivers/crypto/chelsio
parentcrypto: cavium/nitrox - fix a DMA pool free failure (diff)
downloadkernel-qcow2-linux-cc43a8afa8e37cd466000ee1b4995e8f8e7b615d.tar.gz
kernel-qcow2-linux-cc43a8afa8e37cd466000ee1b4995e8f8e7b615d.tar.xz
kernel-qcow2-linux-cc43a8afa8e37cd466000ee1b4995e8f8e7b615d.zip
crypto: chcr - small packet Tx stalls the queue
commit c35828ea906a7c76632a0211e59c392903cd4615 upstream. Immediate packets sent to hardware should include the work request length in calculating the flits. WR occupy one flit and if not accounted result in invalid request which stalls the HW queue. Cc: stable@vger.kernel.org Signed-off-by: Atul Gupta <atul.gupta@chelsio.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/crypto/chelsio')
-rw-r--r--drivers/crypto/chelsio/chcr_ipsec.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/crypto/chelsio/chcr_ipsec.c b/drivers/crypto/chelsio/chcr_ipsec.c
index 461b97e2f1fd..1ff8738631a3 100644
--- a/drivers/crypto/chelsio/chcr_ipsec.c
+++ b/drivers/crypto/chelsio/chcr_ipsec.c
@@ -303,7 +303,10 @@ static bool chcr_ipsec_offload_ok(struct sk_buff *skb, struct xfrm_state *x)
static inline int is_eth_imm(const struct sk_buff *skb, unsigned int kctx_len)
{
- int hdrlen = sizeof(struct chcr_ipsec_req) + kctx_len;
+ int hdrlen;
+
+ hdrlen = sizeof(struct fw_ulptx_wr) +
+ sizeof(struct chcr_ipsec_req) + kctx_len;
hdrlen += sizeof(struct cpl_tx_pkt);
if (skb->len <= MAX_IMM_TX_PKT_LEN - hdrlen)