Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 247245
b: refs/heads/master
c: 6ff5abb
h: refs/heads/master
i:
  247243: 09d38d4
v: v3
  • Loading branch information
Gustavo F. Padovan committed Apr 28, 2011
1 parent f7672cd commit b4f3524
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8c1d787be4b62d2d1b6f04953eca4bcf7c839d44
refs/heads/master: 6ff5abbf4e4aa88feb9c2367d4fbd9ea081bf98c
1 change: 1 addition & 0 deletions trunk/include/net/bluetooth/l2cap.h
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,7 @@ struct sock *l2cap_sock_alloc(struct net *net, struct socket *sock,
void l2cap_send_disconn_req(struct l2cap_conn *conn, struct l2cap_chan *chan, int err);
struct l2cap_chan *l2cap_chan_alloc(struct sock *sk);
void l2cap_chan_del(struct l2cap_chan *chan, int err);
void l2cap_chan_free(struct l2cap_chan *chan);
int l2cap_chan_connect(struct l2cap_chan *chan);

#endif /* __L2CAP_H */
10 changes: 6 additions & 4 deletions trunk/net/bluetooth/l2cap_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,11 @@ struct l2cap_chan *l2cap_chan_alloc(struct sock *sk)
return chan;
}

void l2cap_chan_free(struct l2cap_chan *chan)
{
kfree(chan);
}

static void __l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan)
{
struct sock *sk = chan->sk;
Expand Down Expand Up @@ -236,7 +241,7 @@ void l2cap_chan_del(struct l2cap_chan *chan, int err)

if (!(chan->conf_state & L2CAP_CONF_OUTPUT_DONE &&
chan->conf_state & L2CAP_CONF_INPUT_DONE))
goto free;
return;

skb_queue_purge(&chan->tx_q);

Expand All @@ -255,9 +260,6 @@ void l2cap_chan_del(struct l2cap_chan *chan, int err)
kfree(l);
}
}

free:
kfree(chan);
}

static inline u8 l2cap_get_auth_type(struct l2cap_chan *chan)
Expand Down
2 changes: 2 additions & 0 deletions trunk/net/bluetooth/l2cap_sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -849,6 +849,8 @@ void l2cap_sock_kill(struct sock *sk)
BT_DBG("sk %p state %d", sk, sk->sk_state);

/* Kill poor orphan */

l2cap_chan_free(l2cap_pi(sk)->chan);
bt_sock_unlink(&l2cap_sk_list, sk);
sock_set_flag(sk, SOCK_DEAD);
sock_put(sk);
Expand Down

0 comments on commit b4f3524

Please sign in to comment.