CAPI: Rework application locking
authorJan Kiszka <jan.kiszka@web.de>
Mon, 8 Feb 2010 10:12:15 +0000 (10:12 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 17 Feb 2010 00:01:22 +0000 (16:01 -0800)
commit88c896ef87fd0dd4dbf36e8e86e019c74b1f6649
tree727de518c111fc1d3d3a3bf49ea292ea414e17c6
parent0ca3a017a7373a4545dd7b345a8a0cecc16bc7e2
CAPI: Rework application locking

Drop the application rw-lock in favour of RCU. This synchronizes
capi20_release against capi_ctr_handle_message which may dereference an
application from (soft-)IRQ context. Any other access to the application
list is now protected by the capi_controller_lock as well. This also
allows to safely inspect applications for /proc dumping by holding
capi_controller_lock.

At this chance, drop some useless release_in_progress checks where we
obtained the application pointer from the list (which becomes NULL on
release_in_progress).

Signed-off-by: Jan Kiszka <jan.kiszka@web.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/isdn/capi/kcapi.c
drivers/isdn/capi/kcapi_proc.c