2012-02-24 14:00:00

by Andrei Emeltchenko

[permalink] [raw]
Subject: [RFC] Bluetooth: Remove duplicated code in l2cap conn req

From: Andrei Emeltchenko <[email protected]>

The same sequence sending L2CAP Connection Request was
used in several places. Using subroutine makes those
places easy to read.

Signed-off-by: Andrei Emeltchenko <[email protected]>
---
net/bluetooth/l2cap_core.c | 49 +++++++++++++++++--------------------------
1 files changed, 19 insertions(+), 30 deletions(-)

diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 5f4cfea..e9fadce 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -667,6 +667,21 @@ static inline int __l2cap_no_conn_pending(struct l2cap_chan *chan)
return !test_bit(CONF_CONNECT_PEND, &chan->conf_state);
}

+static void l2cap_send_conn_req(struct l2cap_chan *chan)
+{
+ struct l2cap_conn *conn = chan->conn;
+ struct l2cap_conn_req req;
+
+ req.scid = cpu_to_le16(chan->scid);
+ req.psm = chan->psm;
+
+ chan->ident = l2cap_get_ident(conn);
+
+ set_bit(CONF_CONNECT_PEND, &chan->conf_state);
+
+ l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_REQ, sizeof(req), &req);
+}
+
static void l2cap_do_start(struct l2cap_chan *chan)
{
struct l2cap_conn *conn = chan->conn;
@@ -676,17 +691,8 @@ static void l2cap_do_start(struct l2cap_chan *chan)
return;

if (l2cap_chan_check_security(chan) &&
- __l2cap_no_conn_pending(chan)) {
- struct l2cap_conn_req req;
- req.scid = cpu_to_le16(chan->scid);
- req.psm = chan->psm;
-
- chan->ident = l2cap_get_ident(conn);
- set_bit(CONF_CONNECT_PEND, &chan->conf_state);
-
- l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_REQ,
- sizeof(req), &req);
- }
+ __l2cap_no_conn_pending(chan))
+ l2cap_send_conn_req(chan);
} else {
struct l2cap_info_req req;
req.type = cpu_to_le16(L2CAP_IT_FEAT_MASK);
@@ -763,8 +769,6 @@ static void l2cap_conn_start(struct l2cap_conn *conn)
}

if (chan->state == BT_CONNECT) {
- struct l2cap_conn_req req;
-
if (!l2cap_chan_check_security(chan) ||
!__l2cap_no_conn_pending(chan)) {
l2cap_chan_unlock(chan);
@@ -779,14 +783,7 @@ static void l2cap_conn_start(struct l2cap_conn *conn)
continue;
}

- req.scid = cpu_to_le16(chan->scid);
- req.psm = chan->psm;
-
- chan->ident = l2cap_get_ident(conn);
- set_bit(CONF_CONNECT_PEND, &chan->conf_state);
-
- l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_REQ,
- sizeof(req), &req);
+ l2cap_send_conn_req(chan);

} else if (chan->state == BT_CONNECT2) {
struct l2cap_conn_rsp rsp;
@@ -4609,15 +4606,7 @@ int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt)

if (chan->state == BT_CONNECT) {
if (!status) {
- struct l2cap_conn_req req;
- req.scid = cpu_to_le16(chan->scid);
- req.psm = chan->psm;
-
- chan->ident = l2cap_get_ident(conn);
- set_bit(CONF_CONNECT_PEND, &chan->conf_state);
-
- l2cap_send_cmd(conn, chan->ident,
- L2CAP_CONN_REQ, sizeof(req), &req);
+ l2cap_send_conn_req(chan);
} else {
__clear_chan_timer(chan);
__set_chan_timer(chan,
--
1.7.9



2012-02-24 20:29:47

by Johan Hedberg

[permalink] [raw]
Subject: Re: [RFC] Bluetooth: Remove duplicated code in l2cap conn req

Hi Andrei,

On Fri, Feb 24, 2012, Andrei Emeltchenko wrote:
> The same sequence sending L2CAP Connection Request was
> used in several places. Using subroutine makes those
> places easy to read.
>
> Signed-off-by: Andrei Emeltchenko <[email protected]>
> ---
> net/bluetooth/l2cap_core.c | 49 +++++++++++++++++--------------------------
> 1 files changed, 19 insertions(+), 30 deletions(-)

Applied. Thanks.

Johan

2012-02-24 20:21:54

by Gustavo Padovan

[permalink] [raw]
Subject: Re: [RFC] Bluetooth: Remove duplicated code in l2cap conn req

Hi Andrei,

* Andrei Emeltchenko <[email protected]> [2012-02-24 16:00:00 +0200]:

> From: Andrei Emeltchenko <[email protected]>
>
> The same sequence sending L2CAP Connection Request was
> used in several places. Using subroutine makes those
> places easy to read.
>
> Signed-off-by: Andrei Emeltchenko <[email protected]>
> ---
> net/bluetooth/l2cap_core.c | 49 +++++++++++++++++--------------------------
> 1 files changed, 19 insertions(+), 30 deletions(-)

Acked-by: Gustavo F. Padovan <[email protected]>

Gustavo

2012-02-24 16:36:16

by Ulisses Furquim

[permalink] [raw]
Subject: Re: [RFC] Bluetooth: Remove duplicated code in l2cap conn req

Hi Andrei,

On Fri, Feb 24, 2012 at 12:00 PM, Andrei Emeltchenko
<[email protected]> wrote:
> From: Andrei Emeltchenko <[email protected]>
>
> The same sequence sending L2CAP Connection Request was
> used in several places. Using subroutine makes those
> places easy to read.
>
> Signed-off-by: Andrei Emeltchenko <[email protected]>
> ---
> ?net/bluetooth/l2cap_core.c | ? 49 +++++++++++++++++--------------------------
> ?1 files changed, 19 insertions(+), 30 deletions(-)

Looks good to me.

Reviewed-by: Ulisses Furquim <[email protected]>

Regards,

--
Ulisses Furquim
ProFUSION embedded systems
http://profusion.mobi
Mobile: +55 19 9250 0942
Skype: ulissesffs