diff --git a/KAEKernelDriver/KAEKernelDriver-OLK-5.10/hisilicon/qm.c b/KAEKernelDriver/KAEKernelDriver-OLK-5.10/hisilicon/qm.c index 08dcc729bedc1b322e206cb31f3b7fd6f3fc4b51..bf29094d87f82ddc7414793d19e5b9a9e6eb9b82 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 d0577eddd246b1d3497f925e9993558bbcefc6fb..1b80a9a2a726c62f983290fed3f0426d130e6ecf 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 6f66e8e5fd5a31ab9ac9387c1d4596aafc8bf045..d81edc961961ece15f5731c451375a2ba9976145 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");