Commit f1e87334 authored by Juxin Gao's avatar Juxin Gao Committed by Hongchen Zhang
Browse files

LoongArch: limit min pci msi-x/msi vector number when request more than 32 vectors

LoongArch inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I9R7M9



------------------------------------------

When we test wangxun network card ,we get failed. The reason is wangxun
driver request a large minvec (33 or bigger), and it failed on LoongArch
machine. Usually, it is not necessary to set the minimum number of MSI-X
interrupts used to such a large number, so we limit it

Signed-off-by: default avatarJuxin Gao <gaojuxin@loongson.cn>
Signed-off-by: default avatarHongchen Zhang <zhanghongchen@loongson.cn>
parent b51533d4
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -424,8 +424,10 @@ int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
	int rc;

#ifdef CONFIG_LOONGARCH
	if (maxvec > 32)
	if (maxvec > 32) {
		maxvec = pci_irq_numbers;
		minvec = min_t(int, pci_irq_numbers, minvec);
	}
#endif

	if (!pci_msi_supported(dev, minvec) || dev->current_state != PCI_D0)
@@ -810,8 +812,10 @@ int __pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries, int
	int hwsize, rc, nvec = maxvec;

#ifdef CONFIG_LOONGARCH
	if (maxvec > 32)
	if (maxvec > 32) {
		nvec = pci_irq_numbers;
		minvec = min_t(int, pci_irq_numbers, minvec);
	}
#endif

	if (maxvec < minvec)