summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/hisilicon/qm.c
diff options
context:
space:
mode:
authorWeili Qian <qianweili@huawei.com>2022-09-24 19:04:31 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2022-10-21 19:05:23 +0800
commitee1537fe3dd89860d0336563891f6cac707d0cb5 (patch)
treeeaf8a1d88d82f612824ec6c8f2737362acedb853 /drivers/crypto/hisilicon/qm.c
parent94adb03fd58bbe355e3d7a9d0f701889313e4a51 (diff)
downloadlinux-stable-ee1537fe3dd89860d0336563891f6cac707d0cb5.tar.gz
linux-stable-ee1537fe3dd89860d0336563891f6cac707d0cb5.tar.bz2
linux-stable-ee1537fe3dd89860d0336563891f6cac707d0cb5.zip
crypto: hisilicon/qm - re-enable communicate interrupt before notifying PF
After the device is reset, the VF needs to re-enable communication interrupt before the VF sends restart complete message to the PF. If the interrupt is re-enabled after the VF notifies the PF, the PF may fail to send messages to the VF after receiving VF's restart complete message. Fixes: 760fe22cf5e9 ("crypto: hisilicon/qm - update reset flow") Signed-off-by: Weili Qian <qianweili@huawei.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/hisilicon/qm.c')
-rw-r--r--drivers/crypto/hisilicon/qm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c
index 01c083e2c4bd..e3edb176d976 100644
--- a/drivers/crypto/hisilicon/qm.c
+++ b/drivers/crypto/hisilicon/qm.c
@@ -5723,6 +5723,7 @@ static void qm_pf_reset_vf_done(struct hisi_qm *qm)
cmd = QM_VF_START_FAIL;
}
+ qm_cmd_init(qm);
ret = qm_ping_pf(qm, cmd);
if (ret)
dev_warn(&pdev->dev, "PF responds timeout in reset done!\n");
@@ -5784,7 +5785,6 @@ static void qm_pf_reset_vf_process(struct hisi_qm *qm,
goto err_get_status;
qm_pf_reset_vf_done(qm);
- qm_cmd_init(qm);
dev_info(dev, "device reset done.\n");