591d2fb02e
irq_set_thread_affinity() calls set_cpus_allowed_ptr() which might sleep, but irq_set_thread_affinity() is called with desc->lock held and can be called from hard interrupt context as well. The code has another bug as it does not hold a ref on the task struct as required by set_cpus_allowed_ptr(). Just set the IRQTF_AFFINITY bit in action->thread_flags. The next time the thread runs it migrates itself. Solves all of the above problems nicely. Add kerneldoc to irq_set_thread_affinity() while at it. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> LKML-Reference: <new-submission> |
||
---|---|---|
.. | ||
Makefile | ||
autoprobe.c | ||
chip.c | ||
devres.c | ||
handle.c | ||
internals.h | ||
manage.c | ||
migration.c | ||
numa_migrate.c | ||
pm.c | ||
proc.c | ||
resend.c | ||
spurious.c |