crypto: hisilicon/qm - SVA bugfixed on Kunpeng920
authorKai Ye <yekai13@huawei.com>
Tue, 5 Jan 2021 06:12:03 +0000 (14:12 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 14 Jan 2021 06:10:26 +0000 (17:10 +1100)
Kunpeng920 SEC/HPRE/ZIP cannot support running user space SVA and kernel
Crypto at the same time. Therefore, the algorithms should not be registered
to Crypto as user space SVA is enabled.

Signed-off-by: Kai Ye <yekai13@huawei.com>
Reviewed-by: Zaibo Xu <xuzaibo@huawei.com>
Reviewed-by: Zhou Wang <wangzhou1@hisilicon.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/hisilicon/qm.c

index f21ccae0e8ea8af257e7a2a68b02874d01040d3f..10a04ab15570e0b16c42c82d32f5fbb4a191806b 100644 (file)
@@ -4004,6 +4004,9 @@ int hisi_qm_alg_register(struct hisi_qm *qm, struct hisi_qm_list *qm_list)
 {
        int flag = 0;
        int ret = 0;
+       /* HW V2 not support both use uacce sva mode and hardware crypto algs */
+       if (qm->ver <= QM_HW_V2 && qm->use_sva)
+               return 0;
 
        mutex_lock(&qm_list->lock);
        if (list_empty(&qm_list->list))
@@ -4035,6 +4038,9 @@ EXPORT_SYMBOL_GPL(hisi_qm_alg_register);
  */
 void hisi_qm_alg_unregister(struct hisi_qm *qm, struct hisi_qm_list *qm_list)
 {
+       if (qm->ver <= QM_HW_V2 && qm->use_sva)
+               return;
+
        mutex_lock(&qm_list->lock);
        list_del(&qm->list);
        mutex_unlock(&qm_list->lock);