lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <1413342435-7876-27-git-send-email-wangyijing@huawei.com> Date: Wed, 15 Oct 2014 11:07:14 +0800 From: Yijing Wang <wangyijing@...wei.com> To: Bjorn Helgaas <bhelgaas@...gle.com> CC: <linux-pci@...r.kernel.org>, <linux-kernel@...r.kernel.org>, Xinwei Hu <huxinwei@...wei.com>, Wuyun <wuyun.wu@...wei.com>, <linux-arm-kernel@...ts.infradead.org>, Russell King <linux@....linux.org.uk>, <linux-arch@...r.kernel.org>, <arnab.basu@...escale.com>, <Bharat.Bhushan@...escale.com>, <x86@...nel.org>, Arnd Bergmann <arnd@...db.de>, Thomas Gleixner <tglx@...utronix.de>, "Konrad Rzeszutek Wilk" <konrad.wilk@...cle.com>, <xen-devel@...ts.xenproject.org>, Joerg Roedel <joro@...tes.org>, <iommu@...ts.linux-foundation.org>, <linux-mips@...ux-mips.org>, Benjamin Herrenschmidt <benh@...nel.crashing.org>, <linuxppc-dev@...ts.ozlabs.org>, <linux-s390@...r.kernel.org>, Sebastian Ott <sebott@...ux.vnet.ibm.com>, "Tony Luck" <tony.luck@...el.com>, <linux-ia64@...r.kernel.org>, "David S. Miller" <davem@...emloft.net>, <sparclinux@...r.kernel.org>, Chris Metcalf <cmetcalf@...era.com>, Ralf Baechle <ralf@...ux-mips.org>, Lucas Stach <l.stach@...gutronix.de>, David Vrabel <david.vrabel@...rix.com>, "Sergei Shtylyov" <sergei.shtylyov@...entembedded.com>, Michael Ellerman <mpe@...erman.id.au>, Thierry Reding <thierry.reding@...il.com>, "Thomas Petazzoni" <thomas.petazzoni@...e-electrons.com>, Liviu Dudau <liviu@...au.co.uk>, Yijing Wang <wangyijing@...wei.com> Subject: [PATCH v3 26/27] tile/MSI: Use MSI chip framework to configure MSI/MSI-X irq Use MSI chip framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. Signed-off-by: Yijing Wang <wangyijing@...wei.com> --- arch/tile/include/asm/pci.h | 10 ++++++++++ arch/tile/kernel/pci_gx.c | 13 +++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/arch/tile/include/asm/pci.h b/arch/tile/include/asm/pci.h index dfedd7a..d27d9ec 100644 --- a/arch/tile/include/asm/pci.h +++ b/arch/tile/include/asm/pci.h @@ -152,6 +152,7 @@ struct pci_controller { int pio_io_index; /* PIO region index for I/O space access */ #endif + struct msi_chip *msi_chip; /* * Mem-Map regions for all the memory controllers so that Linux can * map all of its physical memory space to the PCI bus. @@ -179,6 +180,15 @@ struct pci_controller { int irq_intx_table[4]; }; +extern struct msi_chip tilegx_msi; + +static inline struct msi_chip *pci_msi_chip(struct pci_bus *bus) +{ + struct pci_controller *controller = bus->sysdata; + + return controller->msi_chip; +} + extern struct pci_controller pci_controllers[TILEGX_NUM_TRIO * TILEGX_TRIO_PCIES]; extern gxio_trio_context_t trio_contexts[TILEGX_NUM_TRIO]; extern int num_trio_shims; diff --git a/arch/tile/kernel/pci_gx.c b/arch/tile/kernel/pci_gx.c index e39f9c5..ba66517 100644 --- a/arch/tile/kernel/pci_gx.c +++ b/arch/tile/kernel/pci_gx.c @@ -887,6 +887,7 @@ int __init pcibios_init(void) controller->mem_offset); pci_add_resource(&resources, &controller->io_space); controller->first_busno = next_busno; + controller->msi_chip = &tilegx_msi; bus = pci_scan_root_bus(NULL, next_busno, controller->ops, controller, &resources); controller->root_bus = bus; @@ -1485,7 +1486,8 @@ static struct irq_chip tilegx_msi_chip = { /* TBD: support set_affinity. */ }; -int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc) +static int tile_setup_msi_irq(struct msi_chip *chip, + struct pci_dev *pdev, struct msi_desc *desc) { struct pci_controller *controller; gxio_trio_context_t *trio_context; @@ -1604,7 +1606,12 @@ is_64_failure: return ret; } -void arch_teardown_msi_irq(unsigned int irq) +static void tile_teardown_msi_irq(struct msi_chip *chip, unsigned int irq) { irq_free_hwirq(irq); } + +struct msi_chip tilegx_msi = { + .setup_irq = tile_setup_msi_irq, + .teardown_irq = tile_teardown_msi_irq, +}; -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists