diff options
Diffstat (limited to 'arch/x86/include/asm/hw_irq.h')
| -rw-r--r-- | arch/x86/include/asm/hw_irq.h | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h index eb92a6ed2be..1da97efad08 100644 --- a/arch/x86/include/asm/hw_irq.h +++ b/arch/x86/include/asm/hw_irq.h @@ -28,6 +28,7 @@  /* Interrupt handlers registered during init_IRQ */  extern void apic_timer_interrupt(void);  extern void x86_platform_ipi(void); +extern void kvm_posted_intr_ipi(void);  extern void error_interrupt(void);  extern void irq_work_interrupt(void); @@ -101,6 +102,7 @@ static inline void set_io_apic_irq_attr(struct io_apic_irq_attr *irq_attr,  	irq_attr->polarity	= polarity;  } +/* Intel specific interrupt remapping information */  struct irq_2_iommu {  	struct intel_iommu *iommu;  	u16 irte_index; @@ -108,6 +110,12 @@ struct irq_2_iommu {  	u8  irte_mask;  }; +/* AMD specific interrupt remapping information */ +struct irq_2_irte { +	u16 devid; /* Device ID for IRTE table */ +	u16 index; /* Index into IRTE table*/ +}; +  /*   * This is performance-critical, we want to do it O(1)   * @@ -120,7 +128,11 @@ struct irq_cfg {  	u8			vector;  	u8			move_in_progress : 1;  #ifdef CONFIG_IRQ_REMAP -	struct irq_2_iommu	irq_2_iommu; +	u8			remapped : 1; +	union { +		struct irq_2_iommu irq_2_iommu; +		struct irq_2_irte  irq_2_irte; +	};  #endif  };  |