Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1704061
| From | Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [RFT PATCH 0/9] PCI: Remove pci_fixup_irqs() |
| Date | 2017-08-04 17:10 +0200 |
| Message-ID | <uaMoG-br-9@gated-at.bofh.it> (permalink) |
| References | <u9lTz-6F-7@gated-at.bofh.it> <uaw0z-5OT-33@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Thu, Aug 03, 2017 at 04:35:03PM -0500, Bjorn Helgaas wrote: > On Mon, Jul 31, 2017 at 05:37:48PM +0100, Lorenzo Pieralisi wrote: > > The pci_fixup_irqs() function allocates IRQs for all PCI devices present > > in a system; those PCI devices possibly belong to different PCI bus trees > > (and possibly rooted at different host bridges) and may well be enabled > > (ie probed and bound to a driver) by the time pci_fixup_irqs() is called > > when probing a given host bridge driver. > > > > Furthermore, current kernel code relying on pci_fixup_irqs() to > > assign legacy PCI IRQs to devices does not work at all for > > hotplugged devices in that the code carrying out the IRQ fixup > > is called at host bridge driver probe time, which just cannot take > > into account devices hotplugged after system has booted. > > > > The introduction of map/swizzle functions hook in struct pci_host_bridge > > allows to define per-bridge map/swizzle functions, that can be used at > > device probe time in PCI core code to allocate IRQs for a given device > > (through pci_assign_irq()). > > > > This series converts all arches still relying on pci_fixup_irqs() to > > the new pci_scan_root_bus_bridge() API and consequently remove > > pci_fixup_irqs() from the kernel in that it is not used anymore. > > > > Compile tested only, I do not have the necessary hardware. > > Yay! I applied this to pci/irq-fixups for v4.14. > > Huge thanks to both Matthew and Lorenzo for all the hard work it took > to make this happen! Thank you (and Matt), I hope this will be enough to prevent people from using pci_fixup_irqs() from now on :) I would appreciate help in testing this series - it is a mechanical change but that does not mean I have not added regressions - hopefully CC'ed maintainers can help with that and -next exposure too. Thank you ! Lorenzo > > [1] git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git pci/pci-fixup-irqs-removal > > > > Cc: Ralf Baechle <ralf@linux-mips.org> > > Cc: Arnd Bergmann <arnd@arndb.de> > > Cc: Paul Burton <paul.burton@imgtec.com> > > Cc: Rich Felker <dalias@libc.org> > > Cc: Bjorn Helgaas <bhelgaas@google.com> > > Cc: Richard Henderson <rth@twiddle.net> > > Cc: Tanmay Inamdar <tinamdar@apm.com> > > Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> > > Cc: Chris Metcalf <cmetcalf@mellanox.com> > > Cc: "David S. Miller" <davem@davemloft.net> > > Cc: Matthew Minter <matt@masarand.com> > > Cc: Yoshinori Sato <ysato@users.sourceforge.jp> > > Cc: Geert Uytterhoeven <geert@linux-m68k.org> > > Cc: Guan Xuetao <gxt@mprc.pku.edu.cn> > > > > Lorenzo Pieralisi (7): > > sh/PCI: Replace pci_fixup_irqs() call with PCI host bridge IRQ mapping > > hooks > > alpha/PCI: Replace pci_fixup_irqs() call with PCI host bridge IRQ > > mapping hooks > > m68k/PCI: Replace pci_fixup_irqs() call with PCI host bridge IRQ > > mapping hooks > > MIPS/PCI: Replace pci_fixup_irqs() call with PCI host bridge IRQ > > mapping hooks > > tile/PCI: Replace pci_fixup_irqs() call with PCI host bridge IRQ > > mapping hooks > > unicore32/PCI: Replace pci_fixup_irqs() call with PCI host bridge IRQ > > mapping hooks > > sparc/PCI: Replace pci_fixup_irqs() call with PCI host bridge IRQ > > mapping hooks > > > > Matthew Minter (2): > > sh/PCI: Remove __init optimisations from IRQ mapping functions/data > > PCI: Remove pci_fixup_irqs() function > > > > arch/alpha/kernel/pci.c | 27 ++++++++++++++++------ > > arch/alpha/kernel/sys_nautilus.c | 31 +++++++++++++++++++++---- > > arch/m68k/coldfire/pci.c | 36 +++++++++++++++++++++++++---- > > arch/mips/pci/pci-legacy.c | 24 +++++++++++++------ > > arch/sh/drivers/pci/fixups-cayman.c | 2 +- > > arch/sh/drivers/pci/fixups-dreamcast.c | 2 +- > > arch/sh/drivers/pci/fixups-r7780rp.c | 2 +- > > arch/sh/drivers/pci/fixups-rts7751r2d.c | 6 ++--- > > arch/sh/drivers/pci/fixups-sdk7780.c | 4 ++-- > > arch/sh/drivers/pci/fixups-se7751.c | 2 +- > > arch/sh/drivers/pci/fixups-sh03.c | 2 +- > > arch/sh/drivers/pci/fixups-snapgear.c | 2 +- > > arch/sh/drivers/pci/fixups-titan.c | 4 ++-- > > arch/sh/drivers/pci/pci.c | 41 ++++++++++++++++++++------------- > > arch/sh/drivers/pci/pcie-sh7786.c | 2 +- > > arch/sparc/kernel/leon_pci.c | 24 ++++++++++++++----- > > arch/tile/kernel/pci.c | 21 +++++++++++++---- > > arch/tile/kernel/pci_gx.c | 21 +++++++++++++---- > > arch/unicore32/kernel/pci.c | 35 ++++++++++++++++++++++++---- > > drivers/pci/setup-irq.c | 24 ------------------- > > include/linux/pci.h | 2 -- > > 21 files changed, 216 insertions(+), 98 deletions(-) > > > > -- > > 2.10.0 > >
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[RFT PATCH 0/9] PCI: Remove pci_fixup_irqs() Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> - 2017-07-31 18:40 +0200
[RFT PATCH 6/9] tile/PCI: Replace pci_fixup_irqs() call with PCI host bridge IRQ mapping hooks Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> - 2017-07-31 18:40 +0200
[RFT PATCH 9/9] PCI: Remove pci_fixup_irqs() function Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> - 2017-07-31 18:40 +0200
[RFT PATCH 1/9] sh/PCI: Remove __init optimisations from IRQ mapping functions/data Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> - 2017-07-31 18:40 +0200
[RFT PATCH 4/9] m68k/PCI: Replace pci_fixup_irqs() call with PCI host bridge IRQ mapping hooks Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> - 2017-07-31 18:40 +0200
Re: [RFT PATCH 0/9] PCI: Remove pci_fixup_irqs() Bjorn Helgaas <helgaas@kernel.org> - 2017-08-03 23:40 +0200
Re: [RFT PATCH 0/9] PCI: Remove pci_fixup_irqs() Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> - 2017-08-04 17:10 +0200
[PATCH] PCI: Inline and remove pcibios_update_irq() Bjorn Helgaas <helgaas@kernel.org> - 2017-08-10 20:00 +0200
csiph-web