Skip to content

Commit c59f0da

Browse files
committed
Merge branch 'pci/msi'
- Remove unused pci_irq_get_node() Greg Kroah-Hartman) - Move power state check out of pci_msi_supported() (Bjorn Helgaas) - Fix incorrect MSI-X masking on resume and revert related nvme quirk for Kingston NVME SSD running FW E8FK11.T (Jian-Hong Pan) - Make asm/msi.h mandatory and simplify PCI_MSI_IRQ_DOMAIN Kconfig (Palmer Dabbelt, Michal Simek) * pci/msi: PCI: Remove PCI_MSI_IRQ_DOMAIN architecture whitelist asm-generic: Make msi.h a mandatory include/asm header Revert "nvme: Add quirk for Kingston NVME SSD running FW E8FK11.T" PCI/MSI: Fix incorrect MSI-X masking on resume PCI/MSI: Move power state check out of pci_msi_supported() PCI/MSI: Remove unused pci_irq_get_node()
2 parents e87eb58 + 191d6f9 commit c59f0da

File tree

12 files changed

+7
-44
lines changed

12 files changed

+7
-44
lines changed

arch/arc/include/asm/Kbuild

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ generic-y += local64.h
1717
generic-y += mcs_spinlock.h
1818
generic-y += mm-arch-hooks.h
1919
generic-y += mmiowb.h
20-
generic-y += msi.h
2120
generic-y += parport.h
2221
generic-y += percpu.h
2322
generic-y += preempt.h

arch/arm/include/asm/Kbuild

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ generic-y += local.h
1212
generic-y += local64.h
1313
generic-y += mm-arch-hooks.h
1414
generic-y += mmiowb.h
15-
generic-y += msi.h
1615
generic-y += parport.h
1716
generic-y += preempt.h
1817
generic-y += seccomp.h

arch/arm64/include/asm/Kbuild

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ generic-y += local64.h
1616
generic-y += mcs_spinlock.h
1717
generic-y += mm-arch-hooks.h
1818
generic-y += mmiowb.h
19-
generic-y += msi.h
2019
generic-y += qrwlock.h
2120
generic-y += qspinlock.h
2221
generic-y += serial.h

arch/mips/include/asm/Kbuild

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ generic-y += irq_work.h
1313
generic-y += local64.h
1414
generic-y += mcs_spinlock.h
1515
generic-y += mm-arch-hooks.h
16-
generic-y += msi.h
1716
generic-y += parport.h
1817
generic-y += percpu.h
1918
generic-y += preempt.h

arch/powerpc/include/asm/Kbuild

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,3 @@ generic-y += local64.h
1010
generic-y += mcs_spinlock.h
1111
generic-y += preempt.h
1212
generic-y += vtime.h
13-
generic-y += msi.h

arch/riscv/include/asm/Kbuild

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ generic-y += kvm_para.h
2222
generic-y += local.h
2323
generic-y += local64.h
2424
generic-y += mm-arch-hooks.h
25-
generic-y += msi.h
2625
generic-y += percpu.h
2726
generic-y += preempt.h
2827
generic-y += sections.h

arch/sparc/include/asm/Kbuild

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ generic-y += mcs_spinlock.h
1818
generic-y += mm-arch-hooks.h
1919
generic-y += mmiowb.h
2020
generic-y += module.h
21-
generic-y += msi.h
2221
generic-y += preempt.h
2322
generic-y += serial.h
2423
generic-y += trace_clock.h

drivers/nvme/host/core.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2404,16 +2404,6 @@ static const struct nvme_core_quirk_entry core_quirks[] = {
24042404
.vid = 0x14a4,
24052405
.fr = "22301111",
24062406
.quirks = NVME_QUIRK_SIMPLE_SUSPEND,
2407-
},
2408-
{
2409-
/*
2410-
* This Kingston E8FK11.T firmware version has no interrupt
2411-
* after resume with actions related to suspend to idle
2412-
* https://bugzilla.kernel.org/show_bug.cgi?id=204887
2413-
*/
2414-
.vid = 0x2646,
2415-
.fr = "E8FK11.T",
2416-
.quirks = NVME_QUIRK_SIMPLE_SUSPEND,
24172407
}
24182408
};
24192409

drivers/pci/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ config PCI_MSI
5252
If you don't know what to do here, say Y.
5353

5454
config PCI_MSI_IRQ_DOMAIN
55-
def_bool ARC || ARM || ARM64 || X86 || RISCV
55+
def_bool y
5656
depends on PCI_MSI
5757
select GENERIC_MSI_IRQ_DOMAIN
5858

drivers/pci/msi.c

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,13 @@ u32 __pci_msix_desc_mask_irq(struct msi_desc *desc, u32 flag)
213213

214214
if (pci_msi_ignore_mask)
215215
return 0;
216+
216217
desc_addr = pci_msix_desc_addr(desc);
217218
if (!desc_addr)
218219
return 0;
219220

220221
mask_bits &= ~PCI_MSIX_ENTRY_CTRL_MASKBIT;
221-
if (flag)
222+
if (flag & PCI_MSIX_ENTRY_CTRL_MASKBIT)
222223
mask_bits |= PCI_MSIX_ENTRY_CTRL_MASKBIT;
223224

224225
writel(mask_bits, desc_addr + PCI_MSIX_ENTRY_VECTOR_CTRL);
@@ -861,7 +862,7 @@ static int pci_msi_supported(struct pci_dev *dev, int nvec)
861862
if (!pci_msi_enable)
862863
return 0;
863864

864-
if (!dev || dev->no_msi || dev->current_state != PCI_D0)
865+
if (!dev || dev->no_msi)
865866
return 0;
866867

867868
/*
@@ -972,7 +973,7 @@ static int __pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries,
972973
int nr_entries;
973974
int i, j;
974975

975-
if (!pci_msi_supported(dev, nvec))
976+
if (!pci_msi_supported(dev, nvec) || dev->current_state != PCI_D0)
976977
return -EINVAL;
977978

978979
nr_entries = pci_msix_vec_count(dev);
@@ -1058,7 +1059,7 @@ static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
10581059
int nvec;
10591060
int rc;
10601061

1061-
if (!pci_msi_supported(dev, minvec))
1062+
if (!pci_msi_supported(dev, minvec) || dev->current_state != PCI_D0)
10621063
return -EINVAL;
10631064

10641065
/* Check whether driver already requested MSI-X IRQs */
@@ -1315,22 +1316,6 @@ const struct cpumask *pci_irq_get_affinity(struct pci_dev *dev, int nr)
13151316
}
13161317
EXPORT_SYMBOL(pci_irq_get_affinity);
13171318

1318-
/**
1319-
* pci_irq_get_node - return the NUMA node of a particular MSI vector
1320-
* @pdev: PCI device to operate on
1321-
* @vec: device-relative interrupt vector index (0-based).
1322-
*/
1323-
int pci_irq_get_node(struct pci_dev *pdev, int vec)
1324-
{
1325-
const struct cpumask *mask;
1326-
1327-
mask = pci_irq_get_affinity(pdev, vec);
1328-
if (mask)
1329-
return local_memory_node(cpu_to_node(cpumask_first(mask)));
1330-
return dev_to_node(&pdev->dev);
1331-
}
1332-
EXPORT_SYMBOL(pci_irq_get_node);
1333-
13341319
struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc)
13351320
{
13361321
return to_pci_dev(desc->dev);

0 commit comments

Comments
 (0)