The patch titled x86_64 irq: Use irq_domain in ioapic_retrigger_irq has been added to the -mm tree. Its filename is x86_64-irq-use-irq_domain-in-ioapic_retrigger_irq.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: x86_64 irq: Use irq_domain in ioapic_retrigger_irq From: Eric W. Biederman <ebiederm@xxxxxxxxxxxx> Thanks to YH Lu for spotting this. It appears I missed this function when I refactored allocate_irq_vector and introduced irq_domain, with the result that all retriggered irqs would go to cpu 0 even if we were not prepared to receive them there. While reviewing YH's patch I also noticed that this function was missing locking, and since I am now reading two values from two diffrent arrays that looks like a race we might be able to hit in the real world. Cc: Yinghai Lu <yinghai.lu@xxxxxxx> Signed-off-by: Eric W. Biederman <ebiederm@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/x86_64/kernel/io_apic.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff -puN arch/x86_64/kernel/io_apic.c~x86_64-irq-use-irq_domain-in-ioapic_retrigger_irq arch/x86_64/kernel/io_apic.c --- a/arch/x86_64/kernel/io_apic.c~x86_64-irq-use-irq_domain-in-ioapic_retrigger_irq +++ a/arch/x86_64/kernel/io_apic.c @@ -1255,12 +1255,15 @@ static int ioapic_retrigger_irq(unsigned { cpumask_t mask; unsigned vector; + unsigned long flags; + spin_lock_irqsave(&vector_lock, flags); vector = irq_vector[irq]; cpus_clear(mask); - cpu_set(vector >> 8, mask); + cpu_set(first_cpu(irq_domain[irq]), mask); - send_IPI_mask(mask, vector & 0xff); + send_IPI_mask(mask, vector); + spin_unlock_irqrestore(&vector_lock, flags); return 1; } _ Patches currently in -mm which might be from ebiederm@xxxxxxxxxxxx are genirq-clean-up-irq-flow-type-naming.patch x86_64-overlapping-program-headers-in-physical-addr-space-fix.patch insert-local-and-io-apics-into-resource-map.patch x86_64-irq-use-irq_domain-in-ioapic_retrigger_irq.patch x86_64-typo-in-__assign_irq_vector-when-update-pos-for-vector-and-offset.patch x86_64-put-more-than-one-cpu-in-target_cpus.patch add-process_session-helper-routine.patch rename-struct-namespace-to-struct-mnt_namespace.patch add-an-identifier-to-nsproxy.patch rename-struct-pspace-to-struct-pid_namespace.patch add-pid_namespace-to-nsproxy.patch use-current-nsproxy-pid_ns.patch add-child-reaper-to-pid_namespace.patch rename-struct-namespace-to-struct-mnt_namespace-cachefiles.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