When the connection is ready we should set the connection
to CONNECTED so userspace can use it.
Signed-off-by: Vinicius Costa Gomes <[email protected]>
---
net/bluetooth/l2cap_core.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 25f31f4..4af61fb 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -895,8 +895,7 @@ static void l2cap_chan_ready(struct sock *sk)
chan->conf_state = 0;
__clear_chan_timer(chan);
- sk->sk_state = BT_CONNECTED;
- sk->sk_state_change(sk);
+ l2cap_state_change(chan, BT_CONNECTED);
if (parent)
parent->sk_data_ready(parent, 0);
--
1.7.5.4
Hi Vinicius,
* Vinicius Costa Gomes <[email protected]> [2011-06-20 17:01:56 -0300]:
> Hi Gustavo,
>
> On 16:31 Mon 20 Jun, Gustavo F. Padovan wrote:
> > * Vinicius Costa Gomes <[email protected]> [2011-06-17 22:46:25 -0300]:
> >
> > > When the connection is ready we should set the connection
> > > to CONNECTED so userspace can use it.
> > >
> > > Signed-off-by: Vinicius Costa Gomes <[email protected]>
> > > ---
> > > net/bluetooth/l2cap_core.c | 3 +--
> > > 1 files changed, 1 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> > > index 25f31f4..4af61fb 100644
> > > --- a/net/bluetooth/l2cap_core.c
> > > +++ b/net/bluetooth/l2cap_core.c
> > > @@ -895,8 +895,7 @@ static void l2cap_chan_ready(struct sock *sk)
> > > chan->conf_state = 0;
> > > __clear_chan_timer(chan);
> > >
> > > - sk->sk_state = BT_CONNECTED;
> > > - sk->sk_state_change(sk);
> > > + l2cap_state_change(chan, BT_CONNECTED);
> >
> > Why are you removing the sk->sk_state_change() ?
>
> I was thinking that l2cap_state_change() would do this for me. May I ask
> why it doesn't call sk->sk_state_change()?
Because we don't call sk->sk_state_change() every time the state changes.
Gustavo
Hi Gustavo,
On 16:31 Mon 20 Jun, Gustavo F. Padovan wrote:
> * Vinicius Costa Gomes <[email protected]> [2011-06-17 22:46:25 -0300]:
>
> > When the connection is ready we should set the connection
> > to CONNECTED so userspace can use it.
> >
> > Signed-off-by: Vinicius Costa Gomes <[email protected]>
> > ---
> > net/bluetooth/l2cap_core.c | 3 +--
> > 1 files changed, 1 insertions(+), 2 deletions(-)
> >
> > diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> > index 25f31f4..4af61fb 100644
> > --- a/net/bluetooth/l2cap_core.c
> > +++ b/net/bluetooth/l2cap_core.c
> > @@ -895,8 +895,7 @@ static void l2cap_chan_ready(struct sock *sk)
> > chan->conf_state = 0;
> > __clear_chan_timer(chan);
> >
> > - sk->sk_state = BT_CONNECTED;
> > - sk->sk_state_change(sk);
> > + l2cap_state_change(chan, BT_CONNECTED);
>
> Why are you removing the sk->sk_state_change() ?
I was thinking that l2cap_state_change() would do this for me. May I ask
why it doesn't call sk->sk_state_change()?
But will send a fixed version anyway.
>
> Gustavo
Cheers,
--
Vinicius
* Vinicius Costa Gomes <[email protected]> [2011-06-17 22:46:27 -0300]:
> We already have access to the chan, we don't have to access the
> socket to get its imtu.
>
> Signed-off-by: Vinicius Costa Gomes <[email protected]>
> ---
> net/bluetooth/l2cap_core.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
Patches 2 and 3 are applied. Thanks.
Gustavo
* Vinicius Costa Gomes <[email protected]> [2011-06-17 22:46:25 -0300]:
> When the connection is ready we should set the connection
> to CONNECTED so userspace can use it.
>
> Signed-off-by: Vinicius Costa Gomes <[email protected]>
> ---
> net/bluetooth/l2cap_core.c | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
> index 25f31f4..4af61fb 100644
> --- a/net/bluetooth/l2cap_core.c
> +++ b/net/bluetooth/l2cap_core.c
> @@ -895,8 +895,7 @@ static void l2cap_chan_ready(struct sock *sk)
> chan->conf_state = 0;
> __clear_chan_timer(chan);
>
> - sk->sk_state = BT_CONNECTED;
> - sk->sk_state_change(sk);
> + l2cap_state_change(chan, BT_CONNECTED);
Why are you removing the sk->sk_state_change() ?
Gustavo
We already have access to the chan, we don't have to access the
socket to get its imtu.
Signed-off-by: Vinicius Costa Gomes <[email protected]>
---
net/bluetooth/l2cap_core.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index bbe5306..904b177 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -3964,7 +3964,7 @@ static inline int l2cap_conless_channel(struct l2cap_conn *conn, __le16 psm, str
if (chan->state != BT_BOUND && chan->state != BT_CONNECTED)
goto drop;
- if (l2cap_pi(sk)->chan->imtu < skb->len)
+ if (chan->imtu < skb->len)
goto drop;
if (!chan->ops->recv(chan->data, skb))
@@ -3997,7 +3997,7 @@ static inline int l2cap_att_channel(struct l2cap_conn *conn, __le16 cid, struct
if (chan->state != BT_BOUND && chan->state != BT_CONNECTED)
goto drop;
- if (l2cap_pi(sk)->chan->imtu < skb->len)
+ if (chan->imtu < skb->len)
goto drop;
if (!chan->ops->recv(chan->data, skb))
--
1.7.5.4
We should not try to do any other type of configuration for
LE links when they become ready.
Signed-off-by: Vinicius Costa Gomes <[email protected]>
---
net/bluetooth/l2cap_core.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 4af61fb..bbe5306 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -917,11 +917,11 @@ static void l2cap_conn_ready(struct l2cap_conn *conn)
bh_lock_sock(sk);
- if (conn->hcon->type == LE_LINK)
+ if (conn->hcon->type == LE_LINK) {
if (smp_conn_security(conn, chan->sec_level))
l2cap_chan_ready(sk);
- if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
+ } else if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) {
__clear_chan_timer(chan);
l2cap_state_change(chan, BT_CONNECTED);
sk->sk_state_change(sk);
--
1.7.5.4