Bluetooth: Add public l2cap_conn_shutdown() API to request disconnection
authorJohan Hedberg <johan.hedberg@intel.com>
Mon, 11 Aug 2014 19:06:37 +0000 (22:06 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 14 Aug 2014 06:49:21 +0000 (08:49 +0200)
commitdec5b49235e2526d7aacf5b93ea48f5e30c2f7c3
tree34883a02b209d04da0c956cec4f56d1c288c3a74
parent44f1a7ab51ebe1ca189445837e0599a5edc6efb1
Bluetooth: Add public l2cap_conn_shutdown() API to request disconnection

Since we no-longer do special handling of SMP within l2cap_core.c we
don't have any code for calling l2cap_conn_del() when smp.c doesn't like
the data it gets. At the same time we cannot simply export
l2cap_conn_del() since it will try to lock the channels it calls into
whereas we already hold the lock in the smp.c l2cap_chan callbacks (i.e.
it'd lead to a deadlock).

This patch adds a new l2cap_conn_shutdown() API which is very similar to
l2cap_conn_del() except that it defers the call to l2cap_conn_del()
through a workqueue, thereby making it safe to use it from an L2CAP
channel callback.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
include/net/bluetooth/l2cap.h
net/bluetooth/l2cap_core.c