diff options
author | Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com> | 2011-03-10 15:33:41 +0100 |
---|---|---|
committer | Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> | 2011-03-17 11:24:31 +0100 |
commit | 840bda0d183ef1192121709393df36de160b74db (patch) | |
tree | ace558595a51c42bd03b0b42c46f0a48de2fad09 /net | |
parent | 125c488d8908679a176a685e1c075567be97fbc4 (diff) |
bluetooth: Option to disable l2cap_info_req
Adds L2CAP module options to disable automatic l2cap_information_req.
ST-Ericsson Linux next: -
ST-Ericsson ID: 328144
ST-Ericsson FOSS-OUT-ID: Trivial
Change-Id: Id46651871e5a1e948803ac1458db7e73da4a1f12
Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/18116
Reviewed-by: Par-Gunnar HJALMDAHL <par-gunnar.p.hjalmdahl@stericsson.com>
Reviewed-by: Henrik POSSUNG <henrik.possung@stericsson.com>
Reviewed-by: Lukasz RYMANOWSKI <lukasz.rymanowski@stericsson.com>
Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/bluetooth/l2cap.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c index a61d2370c8c..d7365ba0ffc 100644 --- a/net/bluetooth/l2cap.c +++ b/net/bluetooth/l2cap.c @@ -53,7 +53,7 @@ #include <net/bluetooth/hci_core.h> #include <net/bluetooth/l2cap.h> -#define VERSION "2.14" +#define VERSION "2.15" #define ENCRYPT_TIMEOUT (20) /* 20 ms */ #ifdef CONFIG_BT_L2CAP_EXT_FEATURES @@ -63,6 +63,7 @@ static int enable_ertm = 0; #endif static int max_transmit = L2CAP_DEFAULT_MAX_TX; static int tx_window = L2CAP_DEFAULT_TX_WINDOW; +static int disable_info_req = 0; static u32 l2cap_feat_mask = L2CAP_FEAT_FIXED_CHAN; static u8 l2cap_fixed_chan[8] = { 0x02, }; @@ -421,8 +422,8 @@ static void l2cap_do_start(struct sock *sk) { struct l2cap_conn *conn = l2cap_pi(sk)->conn; - if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT) { - if (!(conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE)) + if (disable_info_req || conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT) { + if (!disable_info_req && !(conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE)) return; if (l2cap_check_security(sk) && __l2cap_no_conn_pending(sk)) { @@ -2925,7 +2926,7 @@ static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hd l2cap_pi(sk)->ident = cmd->ident; - if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE) { + if (disable_info_req || conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE) { if (l2cap_check_security(sk)) { if (bt_sk(sk)->defer_setup) { sk->sk_state = BT_CONNECT2; @@ -2960,7 +2961,8 @@ sendresp: rsp.status = cpu_to_le16(status); l2cap_send_cmd(conn, cmd->ident, L2CAP_CONN_RSP, sizeof(rsp), &rsp); - if (result == L2CAP_CR_PEND && status == L2CAP_CS_NO_INFO) { + if (!disable_info_req && result == L2CAP_CR_PEND && + status == L2CAP_CS_NO_INFO) { struct l2cap_info_req info; info.type = cpu_to_le16(L2CAP_IT_FEAT_MASK); @@ -4804,6 +4806,9 @@ MODULE_PARM_DESC(max_transmit, "Max transmit value (default = 3)"); module_param(tx_window, uint, 0644); MODULE_PARM_DESC(tx_window, "Transmission window size value (default = 63)"); +module_param(disable_info_req, bool, 0644); +MODULE_PARM_DESC(disable_info_req, "Disables l2cap_information_req during channel setup"); + MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>"); MODULE_DESCRIPTION("Bluetooth L2CAP ver " VERSION); MODULE_VERSION(VERSION); |