]> git.baikalelectronics.ru Git - kernel.git/commit
Bluetooth: Hold socket in defer callback in L2CAP socket
authorGustavo Padovan <gustavo.padovan@collabora.co.uk>
Mon, 21 Oct 2013 16:21:39 +0000 (14:21 -0200)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 21 Oct 2013 19:58:17 +0000 (12:58 -0700)
commit77a8a1518d81f817b5c104382d7d9e3da20a9c93
tree96498c6e4b766277d643621891cacdf3ecb6d346
parentf0f6558201b4be10213b10cc7a83acc7c750c6eb
Bluetooth: Hold socket in defer callback in L2CAP socket

In both places that we use the defer callback the socket lock is held for
a indirect sk access inside __l2cap_change_state() and chan->ops->defer(),
all the rest of the code between lock_sock() and release_sock() is
already protected by the channel lock and won't be affected by this
change.

We now use l2cap_change_state(), the locked version of the change state
function, and the defer callback does the locking itself now. This does
not affect other uses of the defer callback.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_sock.c