[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)
commit04b090d50c88ac8e5ec9c2e985bb65bd153893aa
tree065b815f238796bcd5523c8620d9166ad9b573f2
parentd0772b70faaf8e9f2013b6c4273d94d5eac8047a
[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