From 4e8d1aebf66fca38ff581edd6f7c8214949a371a Mon Sep 17 00:00:00 2001 From: lauyarn Date: Fri, 9 May 2025 19:48:09 +0800 Subject: [PATCH] Round crypto-hisilicon-qm-alloc-power-of-2-interrupt.patch --- KAEKernelDriver/KAEKernelDriver-OLK-5.10/hisilicon/qm.c | 6 ++++++ KAEKernelDriver/KAEKernelDriver-OLK-5.4/hisilicon/qm.c | 6 ++++++ KAEKernelDriver/KAEKernelDriver-OLK-6.6/hisilicon/qm.c | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/KAEKernelDriver/KAEKernelDriver-OLK-5.10/hisilicon/qm.c b/KAEKernelDriver/KAEKernelDriver-OLK-5.10/hisilicon/qm.c index 08dcc72..bf29094 100644 --- a/KAEKernelDriver/KAEKernelDriver-OLK-5.10/hisilicon/qm.c +++ b/KAEKernelDriver/KAEKernelDriver-OLK-5.10/hisilicon/qm.c @@ -5478,6 +5478,12 @@ static int hisi_qm_pci_init(struct hisi_qm *qm) pci_set_master(pdev); num_vec = qm_get_irq_num(qm); + if (!num_vec) { + dev_err(dev, "Device irq num is error!\n"); + ret = -EINVAL; + goto err_get_pci_res; + } + num_vec = roundup_pow_of_two(num_vec); ret = pci_alloc_irq_vectors(pdev, num_vec, num_vec, PCI_IRQ_MSI); if (ret < 0) { dev_err(dev, "Failed to enable MSI vectors!\n"); diff --git a/KAEKernelDriver/KAEKernelDriver-OLK-5.4/hisilicon/qm.c b/KAEKernelDriver/KAEKernelDriver-OLK-5.4/hisilicon/qm.c index d0577ed..1b80a9a 100644 --- a/KAEKernelDriver/KAEKernelDriver-OLK-5.4/hisilicon/qm.c +++ b/KAEKernelDriver/KAEKernelDriver-OLK-5.4/hisilicon/qm.c @@ -5477,6 +5477,12 @@ static int hisi_qm_pci_init(struct hisi_qm *qm) pci_set_master(pdev); num_vec = qm_get_irq_num(qm); + if (!num_vec) { + dev_err(dev, "Device irq num is error!\n"); + ret = -EINVAL; + goto err_get_pci_res; + } + num_vec = roundup_pow_of_two(num_vec); ret = pci_alloc_irq_vectors(pdev, num_vec, num_vec, PCI_IRQ_MSI); if (ret < 0) { dev_err(dev, "Failed to enable MSI vectors!\n"); diff --git a/KAEKernelDriver/KAEKernelDriver-OLK-6.6/hisilicon/qm.c b/KAEKernelDriver/KAEKernelDriver-OLK-6.6/hisilicon/qm.c index 6f66e8e..d81edc9 100644 --- a/KAEKernelDriver/KAEKernelDriver-OLK-6.6/hisilicon/qm.c +++ b/KAEKernelDriver/KAEKernelDriver-OLK-6.6/hisilicon/qm.c @@ -5256,6 +5256,12 @@ static int hisi_qm_pci_init(struct hisi_qm *qm) pci_set_master(pdev); num_vec = qm_get_irq_num(qm); + if (!num_vec) { + dev_err(dev, "Device irq num is error!\n"); + ret = -EINVAL; + goto err_get_pci_res; + } + num_vec = roundup_pow_of_two(num_vec); ret = pci_alloc_irq_vectors(pdev, num_vec, num_vec, PCI_IRQ_MSI); if (ret < 0) { dev_err(dev, "Failed to enable MSI vectors!\n"); -- Gitee