From b010a2eaa33fbc7e3768eb889d817750427f4ab6 Mon Sep 17 00:00:00 2001 From: Yu'an Wang Date: Fri, 17 Apr 2020 15:56:12 +0800 Subject: [PATCH] qm: fix packet loss for acc 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 Reviewed-by: Mingqiang Ling Reviewed-by: Guangwei Zhou Signed-off-by: Yang Yingliang --- 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 52a25b253803..4d9429b34a15 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; -- GitLab