From 4591e90997765fb9eaa5a382cfc49061a82cac1f Mon Sep 17 00:00:00 2001 From: Weili Qian Date: Mon, 5 Jun 2023 11:05:54 +0800 Subject: [PATCH] crypto: hisilicon/qm - prevent soft lockup in qm_poll_req_cb()'s loop driver inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I7AUVE CVE: NA ---------------------------------------------------------------------- The function qm_poll_req_cb() may take a while due to complex req_cb, so soft lockup may occur in kernel with preemption disabled. Add a cond_resched() to prevent that. Signed-off-by: Weili Qian Signed-off-by: JiangShui Yang (cherry picked from commit d07dbb660520043737e001bf0b8e3fa7bddb2a93) --- drivers/crypto/hisilicon/qm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c index 28ce6ac69d4e..e5819d79bac8 100644 --- a/drivers/crypto/hisilicon/qm.c +++ b/drivers/crypto/hisilicon/qm.c @@ -869,6 +869,8 @@ static void qm_poll_req_cb(struct hisi_qp *qp) qm_db(qm, qp->qp_id, QM_DOORBELL_CMD_CQ, qp->qp_status.cq_head, 0); atomic_dec(&qp->qp_status.used); + + cond_resched(); } /* set c_flag */ -- GitLab