linux/arch/x86/kernel/apic
Yinghai Lu fa74c90733 x86: fix set_extra_move_desc calling
Impact: fix bug with irq-descriptor moving when logical flat

Rusty observed:

> The effect of setting desc->affinity (ie. from userspace via sysfs) has varied
> over time.  In 2.6.27, the 32-bit code anded the value with cpu_online_map,
> and both 32 and 64-bit did that anding whenever a cpu was unplugged.
>
> 2.6.29 consolidated this into one routine (and fixed hotplug) but introduced
> another variation: anding the affinity with cfg->domain.  Is this right, or
> should we just set it to what the user said?  Or as now, indicate that we're
> restricting it.

Eric pointed out that desc->affinity should be what the user requested,
if it is at all possible to honor the user space request.

This bug got introduced by commit 22f65d31b "x86: Update io_apic.c to use
new cpumask API".

Fix it by moving the masking to before the descriptor moving ...

Reported-by: Rusty Russell <rusty@rustcorp.com.au>
Reported-by: Eric W. Biederman <ebiederm@xmission.com>
LKML-Reference: <49C94134.4000408@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-03-24 22:12:10 +01:00
..
apic_flat_64.c x86: apic: simplify secondary CPU wakeup methods 2009-02-26 13:58:26 +01:00
apic.c x86, ioapic: Fix non atomic allocation with interrupts disabled 2009-03-17 15:45:29 -07:00
bigsmp_32.c x86_32: apic/bigsmp_32, de-inline functions 2009-03-02 11:20:32 +01:00
es7000_32.c x86_32: apic/es7000_32, fix section mismatch 2009-03-02 12:00:24 +01:00
io_apic.c x86: fix set_extra_move_desc calling 2009-03-24 22:12:10 +01:00
ipi.c
Makefile
nmi.c
numaq_32.c x86_32: apic/numaq_32, fix section mismatch 2009-03-02 12:00:25 +01:00
probe_32.c x86: apic: simplify secondary CPU wakeup methods 2009-02-26 13:58:26 +01:00
probe_64.c x86, x2apic: cleanup ifdef CONFIG_INTR_REMAP in io_apic code 2009-03-17 15:45:07 -07:00
summit_32.c x86_32: apic/summit_32, fix section mismatch 2009-03-02 12:00:25 +01:00
x2apic_cluster.c x86: add x2apic_wrmsr_fence() to x2apic flush tlb paths 2009-03-18 09:36:14 +01:00
x2apic_phys.c x86: add x2apic_wrmsr_fence() to x2apic flush tlb paths 2009-03-18 09:36:14 +01:00
x2apic_uv_x.c x86: apic: simplify secondary CPU wakeup methods, fix 2009-02-26 14:11:06 +01:00