]> git.baikalelectronics.ru Git - kernel.git/commit
[AF_IUCV/IUCV]: smp_call_function deadlock
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Sun, 29 Apr 2007 06:03:59 +0000 (23:03 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 29 Apr 2007 06:03:59 +0000 (23:03 -0700)
commit95293873847769ca2ec26f271ed76d68fff0face
tree065b815f238796bcd5523c8620d9166ad9b573f2
parent4bb089e14fa59008f763ad9f995887d77fcf0959
[AF_IUCV/IUCV]: smp_call_function deadlock

Calling smp_call_function can lead to a deadlock if it is called
from tasklet context.
Fixing this deadlock requires to move the smp_call_function from the
tasklet context to a work queue. To do that queue the path pending
interrupts to a separate list and move the path cleanup out of
iucv_path_sever to iucv_path_connect and iucv_path_pending.
This creates a new requirement for iucv_path_connect: it may not be
called from tasklet context anymore.
Also fixed compile problem for CONFIG_HOTPLUG_CPU=n and
another one when walking the cpu_online mask. When doing this,
we must disable cpu hotplug.

Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/iucv/iucv.h
net/iucv/iucv.c