Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1198255

[PATCH 3/4] drivers:x86:pci: Make it possible to implement a PCI MSI IRQ Domain in a module.

From jakeo@microsoft.com
Newsgroups linux.kernel
Subject [PATCH 3/4] drivers:x86:pci: Make it possible to implement a PCI MSI IRQ Domain in a module.
Date 2015-08-02 03:10 +0200
Message-ID <pSPWN-543-9@gated-at.bofh.it> (permalink)
References <pSPWN-543-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Jake Oshins <jakeo@microsoft.com>

The Linux kernel already has the concept of IRQ domain, wherein a component
can expose a set of IRQs which are managed by a particular interrupt controller
chip or other subsystem.  The PCI driver exposes the notion of an IRQ domain
for Message-Signaled Interrupts (MSI) from PCI Express devices.  This patch
exposes the functions which are necessary to do this within a module, rather
than just linked into the kernel itself.

I felt it made more sense to deliver an MSI IRQ domain as a module both so that
the code wouldn't be loaded except when needed and also because the driver
which needs this (which is the next patch in this series) is a module and itself
depends on another module.

Signed-off-by: Jake Oshins <jakeo@microsoft.com>
---
 arch/x86/kernel/apic/vector.c | 2 ++
 drivers/pci/msi.c             | 1 +
 kernel/irq/chip.c             | 1 +
 3 files changed, 4 insertions(+)

diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
index f47069e..67f7e68 100644
--- a/arch/x86/kernel/apic/vector.c
+++ b/arch/x86/kernel/apic/vector.c
@@ -29,6 +29,7 @@ struct apic_chip_data {
 };
 
 struct irq_domain *x86_vector_domain;
+EXPORT_SYMBOL_GPL(x86_vector_domain);
 static DEFINE_RAW_SPINLOCK(vector_lock);
 static cpumask_var_t vector_cpumask;
 static struct irq_chip lapic_controller;
@@ -66,6 +67,7 @@ struct irq_cfg *irqd_cfg(struct irq_data *irq_data)
 
 	return data ? &data->cfg : NULL;
 }
+EXPORT_SYMBOL_GPL(irqd_cfg);
 
 struct irq_cfg *irq_cfg(unsigned int irq)
 {
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 566de05..b118be1 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1276,6 +1276,7 @@ struct irq_domain *pci_msi_create_irq_domain(struct device_node *node,
 
 	return msi_create_irq_domain(node, info, parent);
 }
+EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain);
 
 /**
  * pci_msi_domain_alloc_irqs - Allocate interrupts for @dev in @domain
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 76f199d..3c82c44 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -935,6 +935,7 @@ void irq_chip_ack_parent(struct irq_data *data)
 	data = data->parent_data;
 	data->chip->irq_ack(data);
 }
+EXPORT_SYMBOL_GPL(irq_chip_ack_parent);
 
 /**
  * irq_chip_mask_parent - Mask the parent interrupt
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/4] New Paravirtual front-end for PCI in a Hyper-V VM jakeo@microsoft.com - 2015-08-02 03:10 +0200
  [PATCH 3/4] drivers:x86:pci: Make it possible to implement a PCI MSI IRQ Domain in a module. jakeo@microsoft.com - 2015-08-02 03:10 +0200
  [PATCH 2/4] drivers:hv: Define the channel type for Hyper-V PCI Express pass-through jakeo@microsoft.com - 2015-08-02 03:10 +0200
  [PATCH 1/4] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num jakeo@microsoft.com - 2015-08-02 03:10 +0200
  [PATCH 4/4] drivers:pci:hv: New paravirtual PCI front-end for Hyper-V VMs jakeo@microsoft.com - 2015-08-02 03:10 +0200
    Re: [PATCH 4/4] drivers:pci:hv: New paravirtual PCI front-end for  Hyper-V VMs Thomas Gleixner <tglx@linutronix.de> - 2015-08-02 10:50 +0200
      RE: [PATCH 4/4] drivers:pci:hv: New paravirtual PCI front-end for  Hyper-V VMs Jake Oshins <jakeo@microsoft.com> - 2015-08-03 21:30 +0200
        RE: [PATCH 4/4] drivers:pci:hv: New paravirtual PCI front-end for  Hyper-V VMs Thomas Gleixner <tglx@linutronix.de> - 2015-08-03 21:50 +0200
    Re: [PATCH 4/4] drivers:pci:hv: New paravirtual PCI front-end for  Hyper-V VMs Paul Bolle <pebolle@tiscali.nl> - 2015-08-03 11:20 +0200
      Re: [PATCH 4/4] drivers:pci:hv: New paravirtual PCI front-end for  Hyper-V VMs Dan Carpenter <dan.carpenter@oracle.com> - 2015-08-03 12:00 +0200

csiph-web