genirq: Split irq_set_affinity() so it can be called with lock held.
authorDavid Daney <ddaney@caviumnetworks.com>
Fri, 25 Mar 2011 19:38:50 +0000 (12:38 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 27 Mar 2011 15:45:59 +0000 (17:45 +0200)
commitc2d0c555c22242c3a76e366074c4d83ef9fa3b8c
tree7426945b566129163639229fa0a5f420cdce13a8
parentb3d422329f2e061d66af4f933ef316e50e5edcac
genirq: Split irq_set_affinity() so it can be called with lock held.

The .irq_cpu_online() and .irq_cpu_offline() functions may need to
adjust affinity, but they are called with the descriptor lock held.
Create __irq_set_affinity_locked() which is called with the lock held.
Make irq_set_affinity() just a wrapper that acquires the lock.

[ tglx: Changed the argument to irq_data, added a !desc check and
        moved the !irq_set_affinity check where it belongs ]

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Cc: linux-mips@linux-mips.org
Cc: ralf@linux-mips.org
LKML-Reference: <1301081931-11240-4-git-send-email-ddaney@caviumnetworks.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/irq.h
kernel/irq/manage.c