[RFCv4 05/30] Bluetooth: Lock sk only if exist

Andrei Emeltchenko
2012-03-15T12:29:56Z

net/bluetooth/l2cap_core.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 779f819..e8855cc 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -212,9 +212,13 @@ static inline void l2cap_state_change(struct l2cap_chan *chan, int state, int er
{
struct sock *sk = chan->sk;

- lock_sock(sk);
+ if (sk)
+ lock_sock(sk);
+
__l2cap_state_change(chan, state, err);
- release_sock(sk);
+
+ if (sk)
+ release_sock(sk);
}

void __l2cap_chan_set_err(struct l2cap_chan *chan, int err)
--
1.7.9.1