From: tip-bot for Jake Oshins <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: jakeo@microsoft.com, mingo@kernel.org, tglx@linutronix.de,
linux-kernel@vger.kernel.org, hpa@zytor.com
Subject: [tip:irq/core] genirq/msi: Export functions to allow MSI domains in modules
Date: Sun, 20 Dec 2015 03:30:47 -0800 [thread overview]
Message-ID: <tip-a4289dc2ec3a5821076a78ee9678909b4eff297e@git.kernel.org> (raw)
In-Reply-To: <1449769983-12948-4-git-send-email-jakeo@microsoft.com>
Commit-ID: a4289dc2ec3a5821076a78ee9678909b4eff297e
Gitweb: http://git.kernel.org/tip/a4289dc2ec3a5821076a78ee9678909b4eff297e
Author: Jake Oshins <jakeo@microsoft.com>
AuthorDate: Thu, 10 Dec 2015 17:52:59 +0000
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitDate: Sun, 20 Dec 2015 12:26:52 +0100
genirq/msi: Export functions to allow MSI domains in modules
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 for creating a MSI IRQ domain within a module.
[ tglx: Split it into x86 and core irq parts ]
Signed-off-by: Jake Oshins <jakeo@microsoft.com>
Cc: gregkh@linuxfoundation.org
Cc: kys@microsoft.com
Cc: devel@linuxdriverproject.org
Cc: olaf@aepfle.de
Cc: apw@canonical.com
Cc: vkuznets@redhat.com
Cc: haiyangz@microsoft.com
Cc: marc.zyngier@arm.com
Cc: bhelgaas@google.com
Link: http://lkml.kernel.org/r/1449769983-12948-4-git-send-email-jakeo@microsoft.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
drivers/pci/msi.c | 4 ++++
kernel/irq/chip.c | 1 +
kernel/irq/irqdomain.c | 4 ++++
3 files changed, 9 insertions(+)
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 7eaa4c8..7a0df3f 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -257,6 +257,7 @@ void pci_msi_mask_irq(struct irq_data *data)
{
msi_set_mask_bit(data, 1);
}
+EXPORT_SYMBOL_GPL(pci_msi_mask_irq);
/**
* pci_msi_unmask_irq - Generic irq chip callback to unmask PCI/MSI interrupts
@@ -266,6 +267,7 @@ void pci_msi_unmask_irq(struct irq_data *data)
{
msi_set_mask_bit(data, 0);
}
+EXPORT_SYMBOL_GPL(pci_msi_unmask_irq);
void default_restore_msi_irqs(struct pci_dev *dev)
{
@@ -1126,6 +1128,7 @@ struct pci_dev *msi_desc_to_pci_dev(struct msi_desc *desc)
{
return to_pci_dev(desc->dev);
}
+EXPORT_SYMBOL(msi_desc_to_pci_dev);
void *msi_desc_to_pci_sysdata(struct msi_desc *desc)
{
@@ -1285,6 +1288,7 @@ struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
domain->bus_token = DOMAIN_BUS_PCI_MSI;
return domain;
}
+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 05e29de..5797909 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -950,6 +950,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
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 1c9973e..280a7fc 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -60,6 +60,7 @@ struct fwnode_handle *irq_domain_alloc_fwnode(void *data)
fwid->fwnode.type = FWNODE_IRQCHIP;
return &fwid->fwnode;
}
+EXPORT_SYMBOL_GPL(irq_domain_alloc_fwnode);
/**
* irq_domain_free_fwnode - Free a non-OF-backed fwnode_handle
@@ -77,6 +78,7 @@ void irq_domain_free_fwnode(struct fwnode_handle *fwnode)
kfree(fwid->name);
kfree(fwid);
}
+EXPORT_SYMBOL_GPL(irq_domain_free_fwnode);
/**
* __irq_domain_add() - Allocate a new irq_domain data structure
@@ -1013,6 +1015,7 @@ struct irq_data *irq_domain_get_irq_data(struct irq_domain *domain,
return NULL;
}
+EXPORT_SYMBOL_GPL(irq_domain_get_irq_data);
/**
* irq_domain_set_hwirq_and_chip - Set hwirq and irqchip of @virq at @domain
@@ -1343,6 +1346,7 @@ struct irq_data *irq_domain_get_irq_data(struct irq_domain *domain,
return (irq_data && irq_data->domain == domain) ? irq_data : NULL;
}
+EXPORT_SYMBOL_GPL(irq_domain_get_irq_data);
/**
* irq_domain_set_info - Set the complete data for a @virq in @domain
next prev parent reply other threads:[~2015-12-20 11:31 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-10 17:52 [PATCH v10 0/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs jakeo
2015-12-10 17:52 ` [PATCH v10 1/7] drivers:hv: Export a function that maps Linux CPU num onto Hyper-V proc num jakeo
2015-12-10 17:52 ` [PATCH v10 2/7] drivers:hv: Export hv_do_hypercall() jakeo
2015-12-10 17:52 ` [PATCH v10 3/7] PCI: Make it possible to implement a PCI MSI IRQ Domain in a module jakeo
2015-12-10 18:13 ` Marc Zyngier
2015-12-20 11:30 ` tip-bot for Jake Oshins [this message]
2015-12-20 11:45 ` [tip:x86/apic] x86/irq: Export functions to allow MSI domains in modules tip-bot for Jake Oshins
2015-12-10 17:53 ` [PATCH v10 4/7] PCI: Add fwnode_handle to pci_sysdata jakeo
2015-12-10 18:16 ` Marc Zyngier
2015-12-10 17:53 ` [PATCH v10 5/7] PCI: irqdomain: Look up IRQ domain by fwnode_handle jakeo
2015-12-10 18:12 ` Marc Zyngier
2015-12-10 17:53 ` [PATCH v10 6/7] drivers:hv: Define the channel type of Hyper-V PCI Express pass-through jakeo
2015-12-10 17:53 ` [PATCH v10 7/7] PCI: hv: New paravirtual PCI front-end for Hyper-V VMs jakeo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-a4289dc2ec3a5821076a78ee9678909b4eff297e@git.kernel.org \
--to=tipbot@zytor.com \
--cc=hpa@zytor.com \
--cc=jakeo@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.