aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorAndrzej Kaczmarek <andrzej.kaczmarek@tieto.com>2011-03-10 15:33:41 +0100
committerSrinidhi KASAGAR <srinidhi.kasagar@stericsson.com>2011-03-17 11:24:31 +0100
commit840bda0d183ef1192121709393df36de160b74db (patch)
treeace558595a51c42bd03b0b42c46f0a48de2fad09 /net
parent125c488d8908679a176a685e1c075567be97fbc4 (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.c15
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);