From: Linus Torvalds Date: Wed, 23 May 2012 01:38:11 +0000 (-0700) Subject: Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git... X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=f08b9c2f8af0d61faa1170aeae4fbca1eff6a504;p=~shefty%2Frdma-dev.git Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86/apic changes from Ingo Molnar: "Most of the changes are about helping virtualized guest kernels achieve better performance." Fix up trivial conflicts with the iommu updates to arch/x86/kernel/apic/io_apic.c * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/apic: Implement EIO micro-optimization x86/apic: Add apic->eoi_write() callback x86/apic: Use symbolic APIC_EOI_ACK x86/apic: Fix typo EIO_ACK -> EOI_ACK and document it x86/xen/apic: Add missing #include x86/apic: Only compile local function if used with !CONFIG_GENERIC_PENDING_IRQ x86/apic: Fix UP boot crash x86: Conditionally update time when ack-ing pending irqs xen/apic: implement io apic read with hypercall Revert "xen/x86: Workaround 'x86/ioapic: Add register level checks to detect bogus io-apic entries'" xen/x86: Implement x86_apic_ops x86/apic: Replace io_apic_ops with x86_io_apic_ops. --- f08b9c2f8af0d61faa1170aeae4fbca1eff6a504 diff --cc arch/x86/kernel/apic/io_apic.c index ef0648cd708,e245365670a..ffdc152e507 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@@ -68,40 -68,6 +68,22 @@@ #define for_each_irq_pin(entry, head) \ for (entry = head; entry; entry = entry->next) - static void __init __ioapic_init_mappings(void); - - static unsigned int __io_apic_read (unsigned int apic, unsigned int reg); - static void __io_apic_write (unsigned int apic, unsigned int reg, unsigned int val); - static void __io_apic_modify(unsigned int apic, unsigned int reg, unsigned int val); - - static struct io_apic_ops io_apic_ops = { - .init = __ioapic_init_mappings, - .read = __io_apic_read, - .write = __io_apic_write, - .modify = __io_apic_modify, - }; - - void __init set_io_apic_ops(const struct io_apic_ops *ops) - { - io_apic_ops = *ops; - } - +#ifdef CONFIG_IRQ_REMAP +static void irq_remap_modify_chip_defaults(struct irq_chip *chip); +static inline bool irq_remapped(struct irq_cfg *cfg) +{ + return cfg->irq_2_iommu.iommu != NULL; +} +#else +static inline bool irq_remapped(struct irq_cfg *cfg) +{ + return false; +} +static inline void irq_remap_modify_chip_defaults(struct irq_chip *chip) +{ +} +#endif + /* * Is the SiS APIC rmw bug present ? * -1 = don't know, 0 = no, 1 = yes