cpumask: fix bug in use cpumask_var_t in irq_desc
authorMike Travis <travis@sgi.com>
Sun, 11 Jan 2009 05:58:09 +0000 (21:58 -0800)
committerIngo Molnar <mingo@elte.hu>
Sun, 11 Jan 2009 18:13:02 +0000 (19:13 +0100)
commit802bf931f2688ad125b73db597ce63cc842fb27a
treee3715fce62ffeaac7f06f352dc538dccac215216
parent651f8118cf0a5724f23fe1de4a3d9d36b2e01c2e
cpumask: fix bug in use cpumask_var_t in irq_desc

Impact: fix bug where new irq_desc uses old cpumask pointers which are freed.

As Yinghai pointed out, init_copy_one_irq_desc() copies the old desc to
the new desc overwriting the cpumask pointers.  Since the old_desc and
the cpumask pointers are freed, then memory corruption will occur if
these old pointers are used.

Move the allocation of these pointers to after the copy.

Signed-off-by: Mike Travis <travis@sgi.com>
Cc: Yinghai Lu <yinghai@kernel.org>
include/linux/irq.h
kernel/irq/handle.c
kernel/irq/numa_migrate.c