
From: Yu'an Wang <wangyuan46@huawei.com> driver inclusion category: bugfix bugzilla: NA CVE: NA In this patch, we try to change depth of qm_get_avail_sqe. For hardware qm, 1023 sqe is full. When sqe reaches 1024, qm sqe tail equal to head, which will be treated as empty queue, causing packet loss. Signed-off-by: Yu'an Wang <wangyuan46@huawei.com> Reviewed-by: Mingqiang Ling <lingmingqiang@huawei.com> Reviewed-by: Guangwei Zhou <zhouguangwei5@huawei.com> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> --- drivers/crypto/hisilicon/qm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c index 52a25b2..4d9429b 100644 --- a/drivers/crypto/hisilicon/qm.c +++ b/drivers/crypto/hisilicon/qm.c @@ -1244,7 +1244,7 @@ static void *qm_get_avail_sqe(struct hisi_qp *qp) struct hisi_qp_status *qp_status = &qp->qp_status; u16 sq_tail = qp_status->sq_tail; - if (unlikely(atomic_read(&qp->qp_status.used) == QM_Q_DEPTH)) + if (unlikely(atomic_read(&qp->qp_status.used) == QM_Q_DEPTH - 1)) return NULL; return qp->sqe + sq_tail * qp->qm->sqe_size; -- 1.8.3