From 24547c69af78a4e5e63d5f8b9c25358587808fd1 Mon Sep 17 00:00:00 2001 From: tanghui20 Date: Tue, 24 Sep 2019 18:48:53 +0800 Subject: [PATCH] hpre:solve view problem from euleros. driver inclusion category: bugfix bugzilla: NA CVE: NA solve view problem from euleros. Feature or Bugfix:Bugfix Signed-off-by: tanghui20 Reviewed-by: Zhou Wang Reviewed-by: Yang Yingliang Signed-off-by: Yang Yingliang --- drivers/crypto/hisilicon/hpre/hpre_crypto.c | 7 +++---- drivers/crypto/hisilicon/hpre/hpre_main.c | 16 +++++++++++++--- drivers/uacce/uacce.c | 1 - 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/crypto/hisilicon/hpre/hpre_crypto.c b/drivers/crypto/hisilicon/hpre/hpre_crypto.c index 17acf7fe6d5c..a2d62c3f3fc8 100644 --- a/drivers/crypto/hisilicon/hpre/hpre_crypto.c +++ b/drivers/crypto/hisilicon/hpre/hpre_crypto.c @@ -216,9 +216,8 @@ static int hpre_prepare_dma_buf(struct hpre_asym_request *hpre_req, return -EINVAL; ptr = dma_alloc_coherent(dev, ctx->key_sz, tmp, GFP_KERNEL); - if (!ptr) { + if (!ptr) return -ENOMEM; - } if (is_src) { scatterwalk_map_and_copy(ptr + shift, data, 0, len, 0); @@ -838,7 +837,7 @@ static int hpre_crt_para_get(char *para, const char *raw, size_t len = raw_sz; hpre_rsa_drop_leading_zeros(&ptr, &len); - if (!len) + if (!len || len > para_size) return -EINVAL; memcpy(para + para_size - len, ptr, len); @@ -1082,7 +1081,7 @@ static struct kpp_alg dh = { int hpre_algs_register(void) { - int ret = EINVAL; + int ret = 0; mutex_lock(&hpre_alg_lock); if (++hpre_active_devs == 1) { diff --git a/drivers/crypto/hisilicon/hpre/hpre_main.c b/drivers/crypto/hisilicon/hpre/hpre_main.c index 825cc3c42856..afd26485e0af 100644 --- a/drivers/crypto/hisilicon/hpre/hpre_main.c +++ b/drivers/crypto/hisilicon/hpre/hpre_main.c @@ -1466,12 +1466,22 @@ static void hpre_reset_done(struct pci_dev *pdev) } if (pdev->is_physfn) { - hpre_set_user_domain_and_cache(hpre); + ret = hpre_set_user_domain_and_cache(hpre); + if (ret) + return; + hpre_hw_err_init(hpre); + if (hpre->ctrl->num_vfs) hpre_vf_q_assign(hpre, hpre->ctrl->num_vfs); - hpre_vf_reset_done(pdev); + + ret = hpre_vf_reset_done(pdev); + if (ret) { + dev_err(&pdev->dev, "Failed to start VFs!\n"); + return; + } } + hpre_flr_reset_complete(pdev); dev_info(dev, "FLR reset complete\n"); @@ -1492,7 +1502,7 @@ static struct pci_driver hpre_pci_driver = { .probe = hpre_probe, .remove = hpre_remove, #ifdef CONFIG_PCI_IOV - .sriov_configure = hpre_sriov_configure, + .sriov_configure = hpre_sriov_configure, #endif .err_handler = &hpre_err_handler, }; diff --git a/drivers/uacce/uacce.c b/drivers/uacce/uacce.c index 9be1aad3c0f0..17f62d40df76 100644 --- a/drivers/uacce/uacce.c +++ b/drivers/uacce/uacce.c @@ -998,7 +998,6 @@ static long uacce_put_queue(struct uacce_queue *q) * To do: we should vm_munmap mmio and dus regions, currently we munmap * mmio and dus region before put queue. */ - if (uacce->ops->stop_queue) uacce->ops->stop_queue(q); -- GitLab