Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

x86, iommu/vt-d: Clean up interfaces for interrupt remapping

Remove the Intel specific interfaces from dmar.h and remove
asm/irq_remapping.h which is only used for io_apic.c anyway.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Acked-by: Yinghai Lu <yinghai@kernel.org>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>

+26 -92
-22
arch/x86/include/asm/irq_remapping.h
··· 1 - #ifndef _ASM_X86_IRQ_REMAPPING_H 2 - #define _ASM_X86_IRQ_REMAPPING_H 3 - 4 - #define IRTE_DEST(dest) ((x2apic_mode) ? dest : dest << 8) 5 - 6 - #ifdef CONFIG_IRQ_REMAP 7 - static void irq_remap_modify_chip_defaults(struct irq_chip *chip); 8 - static inline bool irq_remapped(struct irq_cfg *cfg) 9 - { 10 - return cfg->irq_2_iommu.iommu != NULL; 11 - } 12 - #else 13 - static inline bool irq_remapped(struct irq_cfg *cfg) 14 - { 15 - return false; 16 - } 17 - static inline void irq_remap_modify_chip_defaults(struct irq_chip *chip) 18 - { 19 - } 20 - #endif 21 - 22 - #endif /* _ASM_X86_IRQ_REMAPPING_H */
+16 -1
arch/x86/kernel/apic/io_apic.c
··· 58 58 #include <asm/hypertransport.h> 59 59 #include <asm/setup.h> 60 60 #include <asm/intr_remapping.h> 61 - #include <asm/irq_remapping.h> 62 61 #include <asm/hpet.h> 63 62 #include <asm/hw_irq.h> 64 63 ··· 85 86 { 86 87 io_apic_ops = *ops; 87 88 } 89 + 90 + #ifdef CONFIG_IRQ_REMAP 91 + static void irq_remap_modify_chip_defaults(struct irq_chip *chip); 92 + static inline bool irq_remapped(struct irq_cfg *cfg) 93 + { 94 + return cfg->irq_2_iommu.iommu != NULL; 95 + } 96 + #else 97 + static inline bool irq_remapped(struct irq_cfg *cfg) 98 + { 99 + return false; 100 + } 101 + static inline void irq_remap_modify_chip_defaults(struct irq_chip *chip) 102 + { 103 + } 104 + #endif 88 105 89 106 /* 90 107 * Is the SiS APIC rmw bug present ?
+10 -10
drivers/iommu/intel_intr_remapping.c
··· 64 64 return 0; 65 65 } 66 66 67 - int alloc_irte(struct intel_iommu *iommu, int irq, u16 count) 67 + static int alloc_irte(struct intel_iommu *iommu, int irq, u16 count) 68 68 { 69 69 struct ir_table *table = iommu->ir_table; 70 70 struct irq_2_iommu *irq_iommu = irq_2_iommu(irq); ··· 136 136 return qi_submit_sync(&desc, iommu); 137 137 } 138 138 139 - int map_irq_to_irte_handle(int irq, u16 *sub_handle) 139 + static int map_irq_to_irte_handle(int irq, u16 *sub_handle) 140 140 { 141 141 struct irq_2_iommu *irq_iommu = irq_2_iommu(irq); 142 142 unsigned long flags; ··· 152 152 return index; 153 153 } 154 154 155 - int set_irte_irq(int irq, struct intel_iommu *iommu, u16 index, u16 subhandle) 155 + static int set_irte_irq(int irq, struct intel_iommu *iommu, u16 index, u16 subhandle) 156 156 { 157 157 struct irq_2_iommu *irq_iommu = irq_2_iommu(irq); 158 158 unsigned long flags; ··· 172 172 return 0; 173 173 } 174 174 175 - int modify_irte(int irq, struct irte *irte_modified) 175 + static int modify_irte(int irq, struct irte *irte_modified) 176 176 { 177 177 struct irq_2_iommu *irq_iommu = irq_2_iommu(irq); 178 178 struct intel_iommu *iommu; ··· 200 200 return rc; 201 201 } 202 202 203 - struct intel_iommu *map_hpet_to_ir(u8 hpet_id) 203 + static struct intel_iommu *map_hpet_to_ir(u8 hpet_id) 204 204 { 205 205 int i; 206 206 ··· 210 210 return NULL; 211 211 } 212 212 213 - struct intel_iommu *map_ioapic_to_ir(int apic) 213 + static struct intel_iommu *map_ioapic_to_ir(int apic) 214 214 { 215 215 int i; 216 216 ··· 220 220 return NULL; 221 221 } 222 222 223 - struct intel_iommu *map_dev_to_ir(struct pci_dev *dev) 223 + static struct intel_iommu *map_dev_to_ir(struct pci_dev *dev) 224 224 { 225 225 struct dmar_drhd_unit *drhd; 226 226 ··· 312 312 irte->sid = sid; 313 313 } 314 314 315 - int set_ioapic_sid(struct irte *irte, int apic) 315 + static int set_ioapic_sid(struct irte *irte, int apic) 316 316 { 317 317 int i; 318 318 u16 sid = 0; ··· 337 337 return 0; 338 338 } 339 339 340 - int set_hpet_sid(struct irte *irte, u8 id) 340 + static int set_hpet_sid(struct irte *irte, u8 id) 341 341 { 342 342 int i; 343 343 u16 sid = 0; ··· 367 367 return 0; 368 368 } 369 369 370 - int set_msi_sid(struct irte *irte, struct pci_dev *dev) 370 + static int set_msi_sid(struct irte *irte, struct pci_dev *dev) 371 371 { 372 372 struct pci_dev *bridge; 373 373
-59
include/linux/dmar.h
··· 114 114 }; 115 115 }; 116 116 117 - #ifdef CONFIG_IRQ_REMAP 118 - extern int get_irte(int irq, struct irte *entry); 119 - extern int modify_irte(int irq, struct irte *irte_modified); 120 - extern int alloc_irte(struct intel_iommu *iommu, int irq, u16 count); 121 - extern int set_irte_irq(int irq, struct intel_iommu *iommu, u16 index, 122 - u16 sub_handle); 123 - extern int map_irq_to_irte_handle(int irq, u16 *sub_handle); 124 - 125 - extern struct intel_iommu *map_dev_to_ir(struct pci_dev *dev); 126 - extern struct intel_iommu *map_ioapic_to_ir(int apic); 127 - extern struct intel_iommu *map_hpet_to_ir(u8 id); 128 - extern int set_ioapic_sid(struct irte *irte, int apic); 129 - extern int set_hpet_sid(struct irte *irte, u8 id); 130 - extern int set_msi_sid(struct irte *irte, struct pci_dev *dev); 131 - #else 132 - static inline int alloc_irte(struct intel_iommu *iommu, int irq, u16 count) 133 - { 134 - return -1; 135 - } 136 - static inline int modify_irte(int irq, struct irte *irte_modified) 137 - { 138 - return -1; 139 - } 140 - static inline int map_irq_to_irte_handle(int irq, u16 *sub_handle) 141 - { 142 - return -1; 143 - } 144 - static inline int set_irte_irq(int irq, struct intel_iommu *iommu, u16 index, 145 - u16 sub_handle) 146 - { 147 - return -1; 148 - } 149 - static inline struct intel_iommu *map_dev_to_ir(struct pci_dev *dev) 150 - { 151 - return NULL; 152 - } 153 - static inline struct intel_iommu *map_ioapic_to_ir(int apic) 154 - { 155 - return NULL; 156 - } 157 - static inline struct intel_iommu *map_hpet_to_ir(unsigned int hpet_id) 158 - { 159 - return NULL; 160 - } 161 - static inline int set_ioapic_sid(struct irte *irte, int apic) 162 - { 163 - return 0; 164 - } 165 - static inline int set_hpet_sid(struct irte *irte, u8 id) 166 - { 167 - return -1; 168 - } 169 - static inline int set_msi_sid(struct irte *irte, struct pci_dev *dev) 170 - { 171 - return 0; 172 - } 173 - 174 - #endif 175 - 176 117 enum { 177 118 IRQ_REMAP_XAPIC_MODE, 178 119 IRQ_REMAP_X2APIC_MODE,