summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/hw_irq.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2020-08-26 14:16:42 +0300
committerThomas Gleixner <tglx@linutronix.de>2020-09-16 17:52:32 +0300
commit33a65ba470c2b7031e513f7b165e68f51cfc55eb (patch)
tree3250aceb9e1296e4fb1afccc58be4acb9974f463 /arch/x86/include/asm/hw_irq.h
parent2bf1e7bcedb8802cb4fc65757b229edfe112a4bb (diff)
downloadlinux-33a65ba470c2b7031e513f7b165e68f51cfc55eb.tar.xz
x86_ioapic_Consolidate_IOAPIC_allocation
Move the IOAPIC specific fields into their own struct and reuse the common devid. Get rid of the #ifdeffery as it does not matter at all whether the alloc info is a couple of bytes longer or not. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Wei Liu <wei.liu@kernel.org> Acked-by: Joerg Roedel <jroedel@suse.de> Link: https://lore.kernel.org/r/20200826112332.054367732@linutronix.de
Diffstat (limited to 'arch/x86/include/asm/hw_irq.h')
-rw-r--r--arch/x86/include/asm/hw_irq.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
index 2d39e61b9f55..641bc14608ff 100644
--- a/arch/x86/include/asm/hw_irq.h
+++ b/arch/x86/include/asm/hw_irq.h
@@ -44,6 +44,15 @@ enum irq_alloc_type {
X86_IRQ_ALLOC_TYPE_HPET_GET_PARENT,
};
+struct ioapic_alloc_info {
+ int pin;
+ int node;
+ u32 trigger : 1;
+ u32 polarity : 1;
+ u32 valid : 1;
+ struct IO_APIC_route_entry *entry;
+};
+
/**
* irq_alloc_info - X86 specific interrupt allocation info
* @type: X86 specific allocation type
@@ -53,6 +62,8 @@ enum irq_alloc_type {
* @mask: CPU mask for vector allocation
* @desc: Pointer to msi descriptor
* @data: Allocation specific data
+ *
+ * @ioapic: IOAPIC specific allocation data
*/
struct irq_alloc_info {
enum irq_alloc_type type;
@@ -64,6 +75,7 @@ struct irq_alloc_info {
void *data;
union {
+ struct ioapic_alloc_info ioapic;
int unused;
#ifdef CONFIG_PCI_MSI
struct {
@@ -71,17 +83,6 @@ struct irq_alloc_info {
irq_hw_number_t msi_hwirq;
};
#endif
-#ifdef CONFIG_X86_IO_APIC
- struct {
- int ioapic_id;
- int ioapic_pin;
- int ioapic_node;
- u32 ioapic_trigger : 1;
- u32 ioapic_polarity : 1;
- u32 ioapic_valid : 1;
- struct IO_APIC_route_entry *ioapic_entry;
- };
-#endif
#ifdef CONFIG_DMAR_TABLE
struct {
int dmar_id;