From: Thomas Gleixner Date: Tue, 21 Jul 2009 09:09:39 +0000 (+0200) Subject: genirq: Delegate irq affinity setting to the irq thread X-Git-Tag: v2.6.31-rc4~6^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=591d2fb02ea80472d846c0b8507007806bdd69cc;p=pandora-kernel.git genirq: Delegate irq affinity setting to the irq thread 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 LKML-Reference: --- Reading git-diff-tree failed