提交 6ecd5db9 编写于 作者: W Weili Qian 提交者: Zheng Zengkai

crypto: hisilicon/qm - remove unnecessary device memory reset

mainline inclusion
from mainline-v5.17-rc1
commit f123e66d
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I4W3OQ
CVE: NA

--------------------------------

The internal memory of the device needs to be reset only when
the device is globally initialized. Other scenarios, such as
function reset, do not need to perform reset.
Signed-off-by: NWeili Qian <qianweili@huawei.com>
Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: NYang Shen <shenyang39@huawei.com>
Reviewed-by: NXiu Jianfeng <xiujianfeng@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 9a3b668e
...@@ -3564,10 +3564,6 @@ static int __hisi_qm_start(struct hisi_qm *qm) ...@@ -3564,10 +3564,6 @@ static int __hisi_qm_start(struct hisi_qm *qm)
WARN_ON(!qm->qdma.va); WARN_ON(!qm->qdma.va);
if (qm->fun_type == QM_HW_PF) { if (qm->fun_type == QM_HW_PF) {
ret = qm_dev_mem_reset(qm);
if (ret)
return ret;
ret = hisi_qm_set_vft(qm, 0, qm->qp_base, qm->qp_num); ret = hisi_qm_set_vft(qm, 0, qm->qp_base, qm->qp_num);
if (ret) if (ret)
return ret; return ret;
...@@ -5065,6 +5061,12 @@ static int qm_controller_reset_done(struct hisi_qm *qm) ...@@ -5065,6 +5061,12 @@ static int qm_controller_reset_done(struct hisi_qm *qm)
if (qm->err_ini->open_axi_master_ooo) if (qm->err_ini->open_axi_master_ooo)
qm->err_ini->open_axi_master_ooo(qm); qm->err_ini->open_axi_master_ooo(qm);
ret = qm_dev_mem_reset(qm);
if (ret) {
pci_err(pdev, "failed to reset device memory\n");
return ret;
}
ret = qm_restart(qm); ret = qm_restart(qm);
if (ret) { if (ret) {
pci_err(pdev, "Failed to start QM!\n"); pci_err(pdev, "Failed to start QM!\n");
...@@ -5836,6 +5838,14 @@ int hisi_qm_init(struct hisi_qm *qm) ...@@ -5836,6 +5838,14 @@ int hisi_qm_init(struct hisi_qm *qm)
goto err_irq_register; goto err_irq_register;
} }
if (qm->fun_type == QM_HW_PF) {
ret = qm_dev_mem_reset(qm);
if (ret) {
dev_err(dev, "failed to reset device memory\n");
goto err_irq_register;
}
}
if (qm->mode == UACCE_MODE_SVA) { if (qm->mode == UACCE_MODE_SVA) {
ret = qm_alloc_uacce(qm); ret = qm_alloc_uacce(qm);
if (ret < 0) if (ret < 0)
...@@ -5993,8 +6003,11 @@ static int qm_rebuild_for_resume(struct hisi_qm *qm) ...@@ -5993,8 +6003,11 @@ static int qm_rebuild_for_resume(struct hisi_qm *qm)
qm_cmd_init(qm); qm_cmd_init(qm);
hisi_qm_dev_err_init(qm); hisi_qm_dev_err_init(qm);
ret = qm_dev_mem_reset(qm);
if (ret)
pci_err(pdev, "failed to reset device memory\n");
return 0; return ret;
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册