Skip to content

Commit 3a05d08

Browse files
Marc ZyngierLorenzo Pieralisi
authored andcommitted
PCI/MSI: Drop use of msi_controller from core code
As there is no driver using msi_controller, we can now safely remove its use from the PCI probe code. Link: https://lore.kernel.org/r/20210330151145.997953-8-maz@kernel.org Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
1 parent e0fad16 commit 3a05d08

3 files changed

Lines changed: 1 addition & 26 deletions

File tree

drivers/pci/msi.c

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -64,39 +64,18 @@ static void pci_msi_teardown_msi_irqs(struct pci_dev *dev)
6464
/* Arch hooks */
6565
int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc)
6666
{
67-
struct msi_controller *chip = dev->bus->msi;
68-
int err;
69-
70-
if (!chip || !chip->setup_irq)
71-
return -EINVAL;
72-
73-
err = chip->setup_irq(chip, dev, desc);
74-
if (err < 0)
75-
return err;
76-
77-
irq_set_chip_data(desc->irq, chip);
78-
79-
return 0;
67+
return -EINVAL;
8068
}
8169

8270
void __weak arch_teardown_msi_irq(unsigned int irq)
8371
{
84-
struct msi_controller *chip = irq_get_chip_data(irq);
85-
86-
if (!chip || !chip->teardown_irq)
87-
return;
88-
89-
chip->teardown_irq(chip, irq);
9072
}
9173

9274
int __weak arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
9375
{
94-
struct msi_controller *chip = dev->bus->msi;
9576
struct msi_desc *entry;
9677
int ret;
9778

98-
if (chip && chip->setup_irqs)
99-
return chip->setup_irqs(chip, dev, nvec, type);
10079
/*
10180
* If an architecture wants to support multiple MSI, it needs to
10281
* override arch_setup_msi_irqs()

drivers/pci/probe.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,6 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
895895
/* Temporarily move resources off the list */
896896
list_splice_init(&bridge->windows, &resources);
897897
bus->sysdata = bridge->sysdata;
898-
bus->msi = bridge->msi;
899898
bus->ops = bridge->ops;
900899
bus->number = bus->busn_res.start = bridge->busnr;
901900
#ifdef CONFIG_PCI_DOMAINS_GENERIC
@@ -1053,7 +1052,6 @@ static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent,
10531052
return NULL;
10541053

10551054
child->parent = parent;
1056-
child->msi = parent->msi;
10571055
child->sysdata = parent->sysdata;
10581056
child->bus_flags = parent->bus_flags;
10591057

include/linux/pci.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,6 @@ struct pci_host_bridge {
540540
int (*map_irq)(const struct pci_dev *, u8, u8);
541541
void (*release_fn)(struct pci_host_bridge *);
542542
void *release_data;
543-
struct msi_controller *msi;
544543
unsigned int ignore_reset_delay:1; /* For entire hierarchy */
545544
unsigned int no_ext_tags:1; /* No Extended Tags */
546545
unsigned int native_aer:1; /* OS may use PCIe AER */
@@ -621,7 +620,6 @@ struct pci_bus {
621620
struct resource busn_res; /* Bus numbers routed to this bus */
622621

623622
struct pci_ops *ops; /* Configuration access functions */
624-
struct msi_controller *msi; /* MSI controller */
625623
void *sysdata; /* Hook for sys-specific extension */
626624
struct proc_dir_entry *procdir; /* Directory entry in /proc/bus/pci */
627625

0 commit comments

Comments
 (0)