diff --git a/drivers/crypto/hisilicon/hpre/hpre_crypto.c b/drivers/crypto/hisilicon/hpre/hpre_crypto.c index 17acf7fe6d5c1d4c339c466f38085722ac80ca80..a2d62c3f3fc8217043f7dc3d0c6c92b95ef6c770 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 825cc3c42856a896e64e55869445c2b5bf74e8ee..afd26485e0af96d3010f119b333bd2811cde7a04 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 9be1aad3c0f079166efb10f34555897bd9069063..17f62d40df7654786df4a98ef77354e226e9ee42 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);