The patch titled genirq: i386 irq: Dynamic irq support has been removed from the -mm tree. Its filename is genirq-i386-irq-dynamic-irq-support.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: genirq: i386 irq: Dynamic irq support From: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx> The current implementation of create_irq() is a hack but it is the current hack that msi.c uses, and unfortunately the ``generic'' apic msi ops depend on this hack. Thus we are stuck this hack of assuming irq == vector until the depencencies in the generic msi code are removed. Signed-off-by: Eric W. Biederman <ebiederm@xxxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Cc: Rajesh Shah <rajesh.shah@xxxxxxxxx> Cc: Andi Kleen <ak@xxxxxx> Cc: "Protasevich, Natalie" <Natalie.Protasevich@xxxxxxxxxx> Cc: "Luck, Tony" <tony.luck@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/i386/kernel/io_apic.c | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff -puN arch/i386/kernel/io_apic.c~genirq-i386-irq-dynamic-irq-support arch/i386/kernel/io_apic.c --- a/arch/i386/kernel/io_apic.c~genirq-i386-irq-dynamic-irq-support +++ a/arch/i386/kernel/io_apic.c @@ -2483,6 +2483,54 @@ static int __init ioapic_init_sysfs(void device_initcall(ioapic_init_sysfs); +#ifdef CONFIG_PCI_MSI +/* + * Dynamic irq allocate and deallocation for MSI + */ +int create_irq(void) +{ + /* Hack of the day: irq == vector. + * + * Ultimately this will be be more general, + * and not depend on the irq to vector identity mapping. + * But this version is needed until msi.c can cope with + * the more general form. + */ + int irq, vector; + unsigned long flags; + vector = assign_irq_vector(AUTO_ASSIGN); + irq = vector; + + if (vector >= 0) { + struct irq_desc *desc; + + spin_lock_irqsave(&vector_lock, flags); + vector_irq[vector] = irq; + irq_vector[irq] = vector; + spin_unlock_irqrestore(&vector_lock, flags); + + set_intr_gate(vector, interrupt[irq]); + + dynamic_irq_init(irq); + } + return irq; +} + +void destroy_irq(unsigned int irq) +{ + unsigned long flags; + unsigned int vector; + + dynamic_irq_cleanup(irq); + + spin_lock_irqsave(&vector_lock, flags); + vector = irq_vector[irq]; + vector_irq[vector] = -1; + irq_vector[irq] = 0; + spin_unlock_irqrestore(&vector_lock, flags); +} +#endif /* CONFIG_PCI_MSI */ + /* -------------------------------------------------------------------------- ACPI-based IOAPIC Configuration -------------------------------------------------------------------------- */ _ Patches currently in -mm which might be from ebiederm@xxxxxxxxxxxx are origin.patch git-scsi-misc.patch insert-local-and-io-apics-into-resource-map.patch i386-distinguish-absolute-symbols.patch i386-define-__pa_symbol.patch i386-setupc-reserve-kernel-memory-starting-from-_text.patch i386-config_physical_start-cleanup.patch make-linux-elfh-safe-to-be-included-in-assembly-files.patch elf-add-elfosabi_standalone-to-elfh.patch kallsyms-generate-relocatable-symbols.patch i386-relocatable-kernel-support.patch genirq-clean-up-irq-flow-type-naming.patch pidhash-temporary-debug-checks.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html