crypto: chelsio - Fix NULL pointer dereference
authorAtul Gupta <atul.gupta@chelsio.com>
Thu, 2 May 2019 10:46:55 +0000 (03:46 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 9 May 2019 05:17:22 +0000 (13:17 +0800)
Do not request FW to generate cidx update if there is less
space in tx queue to post new request.
SGE DBP 1 pidx increment too large
BUG: unable to handle kernel NULL pointer dereference at
0000000000000124
SGE error for queue 101

Signed-off-by: Atul Gupta <atul.gupta@chelsio.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/chelsio/chcr_ipsec.c

index 2f60049361ef684624a724b3436b33f013a41f91..f429aae72542f1e5b8f0b773ded5b4c95b7d9792 100644 (file)
@@ -575,7 +575,8 @@ inline void *chcr_crypto_wreq(struct sk_buff *skb,
        if (unlikely(credits < ETHTXQ_STOP_THRES)) {
                netif_tx_stop_queue(q->txq);
                q->q.stops++;
-               wr_mid |= FW_WR_EQUEQ_F | FW_WR_EQUIQ_F;
+               if (!q->dbqt)
+                       wr_mid |= FW_WR_EQUEQ_F | FW_WR_EQUIQ_F;
        }
        wr_mid |= FW_ULPTX_WR_DATA_F;
        wr->wreq.flowid_len16 = htonl(wr_mid);