summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGustavo F. Padovan <padovan@profusion.mobi>2011-12-09 04:48:17 -0200
committerGustavo F. Padovan <padovan@profusion.mobi>2011-12-18 17:07:57 -0200
commit03a001948166d966d0d580cddb8ae3a23f8b795b (patch)
tree341ca43e5feca84870e874eecfc03881e60179d5 /include
parentf878fcad1760247c054a9c80964d0b7450d2379b (diff)
downloadlinux-3.10-03a001948166d966d0d580cddb8ae3a23f8b795b.tar.gz
linux-3.10-03a001948166d966d0d580cddb8ae3a23f8b795b.tar.bz2
linux-3.10-03a001948166d966d0d580cddb8ae3a23f8b795b.zip
Bluetooth: invert locking order in connect path
This move some checking code that was in l2cap_sock_connect() to l2cap_chan_connect(). Thus we can invert the lock calls, i.e., call lock_sock() before hci_dev_lock() to avoid a deadlock scenario. Acked-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'include')
-rw-r--r--include/net/bluetooth/l2cap.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
index f79137476cb..c0d168adf9b 100644
--- a/include/net/bluetooth/l2cap.h
+++ b/include/net/bluetooth/l2cap.h
@@ -806,7 +806,8 @@ int l2cap_add_scid(struct l2cap_chan *chan, __u16 scid);
struct l2cap_chan *l2cap_chan_create(struct sock *sk);
void l2cap_chan_close(struct l2cap_chan *chan, int reason);
void l2cap_chan_destroy(struct l2cap_chan *chan);
-int l2cap_chan_connect(struct l2cap_chan *chan);
+inline int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
+ bdaddr_t *dst);
int l2cap_chan_send(struct l2cap_chan *chan, struct msghdr *msg, size_t len,
u32 priority);
void l2cap_chan_busy(struct l2cap_chan *chan, int busy);