linux/arch/x86
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
..
boot x86, setup: fix the setting of 480-line VGA modes 2009-03-18 16:54:05 -07:00
configs Merge branches 'x86/apic', 'x86/defconfig', 'x86/memtest', 'x86/mm' and 'linus' into x86/core 2009-02-26 06:31:32 +01:00
crypto crypto: crc32c-intel - Switch to shash 2008-12-25 11:01:37 +11:00
ia32 x86: ia32_signal: introduce {get|set}_user_seg() 2009-02-22 17:54:47 +01:00
include/asm Merge branches 'x86/apic', 'x86/cleanups', 'x86/mm', 'x86/pat', 'x86/setup' and 'x86/signal'; commit 'v2.6.29' into x86/core 2009-03-24 15:19:45 +01:00
kernel x86: fix set_extra_move_desc calling 2009-03-24 22:12:10 +01:00
kvm KVM: VMX: Flush volatile msrs before emulating rdmsr 2009-02-15 02:47:39 +02:00
lguest x86-32: use brk segment for allocating initial kernel pagetable 2009-03-14 17:23:47 -07:00
lib x86: memcpy, clean up 2009-03-12 12:21:17 +01:00
math-emu Merge branch 'linus' into core/percpu 2009-03-11 10:29:28 +01:00
mm Revert "x86: create a non-zero sized bm_pte only when needed" 2009-03-21 17:11:41 +01:00
oprofile x86: oprofile: don't set counter width from cpuid on Core2 2009-03-03 12:04:22 +01:00
pci x86, PAT, PCI: Change vma prot in pci_mmap to reflect inherited prot 2009-03-24 10:42:35 +01:00
power x86: use _types.h headers in asm where available 2009-02-13 11:35:01 -08:00
vdso x86, mm: rename TASK_SIZE64 => TASK_SIZE_MAX 2009-02-21 00:09:44 +01:00
video
xen x86: with the last user gone, remove set_pte_present 2009-03-19 14:04:19 +01:00
Kconfig Merge branches 'x86/apic', 'x86/asm', 'x86/cleanups', 'x86/debug', 'x86/kconfig', 'x86/mm', 'x86/ptrace', 'x86/setup' and 'x86/urgent'; commit 'v2.6.29-rc8' into x86/core 2009-03-14 16:25:40 +01:00
Kconfig.cpu x86/centaur: merge 32 & 64 bit version 2009-03-14 16:27:29 +01:00
Kconfig.debug Merge branch 'linus' into x86/apic 2009-02-22 20:05:19 +01:00
Makefile x86: use targets in the boot Makefile instead of CLEAN_FILES 2009-03-12 13:43:14 -07:00
Makefile_32.cpu x86: merge winchip-2 and winchip-2a cpu choices 2008-10-13 10:22:48 +02:00