]> git.karo-electronics.de Git - karo-tx-linux.git/commit
blackfin: fix possible deadlock in decode_address()
authorAnton Vorontsov <anton.vorontsov@linaro.org>
Thu, 3 May 2012 05:44:46 +0000 (15:44 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 3 May 2012 05:46:58 +0000 (15:46 +1000)
commitb08566c8c51d5562c8ffe64d4f1d2d6b8ec9b467
tree34c4aef2b86eb565b36f30ade01634baadf53af6
parentb8be805cbe1fd51f9657744c5cdda62e7b989df3
blackfin: fix possible deadlock in decode_address()

Oleg Nesterov found an interesting deadlock possibility:

> sysrq_showregs_othercpus() does smp_call_function(showacpu)
> and showacpu() show_stack()->decode_address(). Now suppose that IPI
> interrupts the task holding read_lock(tasklist).

To fix this, blackfin should not grab the write_ variant of the
tasklist lock, read_ one is enough.

Suggested-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/blackfin/kernel/trace.c