kernel_optimize_test/arch/arm/kernel
Will Deacon 5e7371ded0 ARM: 7406/1: hotplug: copy the affinity mask when forcefully migrating IRQs
When a CPU is hotplugged off, we migrate any IRQs currently affine to it
away and onto another online CPU by calling the irq_set_affinity
function of the relevant interrupt controller chip. This function
returns either IRQ_SET_MASK_OK or IRQ_SET_MASK_OK_NOCOPY, to indicate
whether irq_data.affinity was updated.

If we are forcefully migrating an interrupt (because the affinity mask
no longer identifies any online CPUs) then we should update the IRQ
affinity mask to reflect the new CPU set. Failure to do so can
potentially leave /proc/irq/n/smp_affinity identifying only offline
CPUs, which may confuse userspace IRQ balancing daemons.

This patch updates migrate_one_irq to copy the affinity mask when
the interrupt chip returns IRQ_SET_MASK_OK after forcefully changing the
affinity of an interrupt.

Cc: stable@vger.kernel.org
Reported-by: Leif Lindholm <leif.lindholm@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-04-28 11:01:31 +01:00
..
.gitignore
armksyms.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
arthur.c
asm-offsets.c
atags.c
atags.h
bios32.c ARM: fix bios32.c build warning 2012-03-30 21:03:54 +01:00
calls.S
compat.c
compat.h
cpuidle.c
crash_dump.c
debug.S ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
devtree.c
dma-isa.c
dma.c
early_printk.c
elf.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
entry-armv.S ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
entry-common.S
entry-header.S
etm.c
fiq.c ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
fiqasm.S
ftrace.c
head-common.S
head-nommu.S ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
head.S ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
hw_breakpoint.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
init_task.c
insn.c ARM: fix missing bug.h include in arch/arm/kernel/insn.c 2012-03-30 11:51:46 +01:00
insn.h
io.c
irq.c ARM: 7406/1: hotplug: copy the affinity mask when forcefully migrating IRQs 2012-04-28 11:01:31 +01:00
isa.c
iwmmxt.S
jump_label.c
kgdb.c
kprobes-arm.c
kprobes-common.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
kprobes-test-arm.c
kprobes-test-thumb.c
kprobes-test.c
kprobes-test.h
kprobes-thumb.c
kprobes.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-04-02 08:53:24 -07:00
kprobes.h
leds.c
machine_kexec.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
Makefile Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-03-30 16:45:39 -07:00
module.c
opcodes.c
patch.c
patch.h
perf_event_v6.c
perf_event_v7.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
perf_event_xscale.c
perf_event.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
pj4-cp0.c
pmu.c
process.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
ptrace.c ARM: 7337/1: ptrace: fix ptrace_read_user for !CONFIG_MMU platforms 2012-03-30 12:17:33 +01:00
relocate_kernel.S
return_address.c
sched_clock.c
setup.c ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic MMU 2012-04-15 22:00:30 +01:00
signal.c ARM: 7399/1: vfp: move user vfp state save/restore code out of signal.c 2012-04-23 15:44:41 +01:00
signal.h
sleep.S Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
smp_scu.c
smp_tlb.c smp: introduce a generic on_each_cpu_mask() function 2012-03-28 17:14:35 -07:00
smp_twd.c Revert "ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus" 2012-04-19 19:35:10 +01:00
smp.c ARM: 7405/1: kexec: call platform_cpu_kill on the killer rather than the victim 2012-04-28 11:01:31 +01:00
stacktrace.c
suspend.c
swp_emulate.c
sys_arm.c
sys_oabi-compat.c
tcm.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
tcm.h
thumbee.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
time.c
topology.c
traps.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
unwind.c
vmlinux.lds.S
xscale-cp0.c