aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/msi.h6
-rw-r--r--arch/x86/kernel/apic/msi.c8
-rw-r--r--arch/x86/kernel/apic/vector.c2
3 files changed, 13 insertions, 3 deletions
diff --git a/arch/x86/include/asm/msi.h b/arch/x86/include/asm/msi.h
index 93724cc62177..eb4b09b41df5 100644
--- a/arch/x86/include/asm/msi.h
+++ b/arch/x86/include/asm/msi.h
@@ -1,7 +1,13 @@
1#ifndef _ASM_X86_MSI_H 1#ifndef _ASM_X86_MSI_H
2#define _ASM_X86_MSI_H 2#define _ASM_X86_MSI_H
3#include <asm/hw_irq.h> 3#include <asm/hw_irq.h>
4#include <asm/irqdomain.h>
4 5
5typedef struct irq_alloc_info msi_alloc_info_t; 6typedef struct irq_alloc_info msi_alloc_info_t;
6 7
8int pci_msi_prepare(struct irq_domain *domain, struct device *dev, int nvec,
9 msi_alloc_info_t *arg);
10
11void pci_msi_set_desc(msi_alloc_info_t *arg, struct msi_desc *desc);
12
7#endif /* _ASM_X86_MSI_H */ 13#endif /* _ASM_X86_MSI_H */
diff --git a/arch/x86/kernel/apic/msi.c b/arch/x86/kernel/apic/msi.c
index 5f1feb6854af..ade25320df96 100644
--- a/arch/x86/kernel/apic/msi.c
+++ b/arch/x86/kernel/apic/msi.c
@@ -96,8 +96,8 @@ static irq_hw_number_t pci_msi_get_hwirq(struct msi_domain_info *info,
96 return arg->msi_hwirq; 96 return arg->msi_hwirq;
97} 97}
98 98
99static int pci_msi_prepare(struct irq_domain *domain, struct device *dev, 99int pci_msi_prepare(struct irq_domain *domain, struct device *dev, int nvec,
100 int nvec, msi_alloc_info_t *arg) 100 msi_alloc_info_t *arg)
101{ 101{
102 struct pci_dev *pdev = to_pci_dev(dev); 102 struct pci_dev *pdev = to_pci_dev(dev);
103 struct msi_desc *desc = first_pci_msi_entry(pdev); 103 struct msi_desc *desc = first_pci_msi_entry(pdev);
@@ -113,11 +113,13 @@ static int pci_msi_prepare(struct irq_domain *domain, struct device *dev,
113 113
114 return 0; 114 return 0;
115} 115}
116EXPORT_SYMBOL_GPL(pci_msi_prepare);
116 117
117static void pci_msi_set_desc(msi_alloc_info_t *arg, struct msi_desc *desc) 118void pci_msi_set_desc(msi_alloc_info_t *arg, struct msi_desc *desc)
118{ 119{
119 arg->msi_hwirq = pci_msi_domain_calc_hwirq(arg->msi_dev, desc); 120 arg->msi_hwirq = pci_msi_domain_calc_hwirq(arg->msi_dev, desc);
120} 121}
122EXPORT_SYMBOL_GPL(pci_msi_set_desc);
121 123
122static struct msi_domain_ops pci_msi_domain_ops = { 124static struct msi_domain_ops pci_msi_domain_ops = {
123 .get_hwirq = pci_msi_get_hwirq, 125 .get_hwirq = pci_msi_get_hwirq,
diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
index 861bc59c8f25..908cb37da171 100644
--- a/arch/x86/kernel/apic/vector.c
+++ b/arch/x86/kernel/apic/vector.c
@@ -29,6 +29,7 @@ struct apic_chip_data {
29}; 29};
30 30
31struct irq_domain *x86_vector_domain; 31struct irq_domain *x86_vector_domain;
32EXPORT_SYMBOL_GPL(x86_vector_domain);
32static DEFINE_RAW_SPINLOCK(vector_lock); 33static DEFINE_RAW_SPINLOCK(vector_lock);
33static cpumask_var_t vector_cpumask; 34static cpumask_var_t vector_cpumask;
34static struct irq_chip lapic_controller; 35static struct irq_chip lapic_controller;
@@ -66,6 +67,7 @@ struct irq_cfg *irqd_cfg(struct irq_data *irq_data)
66 67
67 return data ? &data->cfg : NULL; 68 return data ? &data->cfg : NULL;
68} 69}
70EXPORT_SYMBOL_GPL(irqd_cfg);
69 71
70struct irq_cfg *irq_cfg(unsigned int irq) 72struct irq_cfg *irq_cfg(unsigned int irq)
71{ 73{