Bluetooth: Enable LE L2CAP CoC support by default
authorJohan Hedberg <johan.hedberg@intel.com>
Fri, 14 Feb 2014 05:40:51 +0000 (07:40 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 14 Feb 2014 21:39:12 +0000 (13:39 -0800)
Now that the LE L2CAP Connection Oriented Channel support has undergone a
decent amount of testing we can make it officially supported. This patch
removes the enable_lecoc module parameter which was previously needed to
enable support for LE L2CAP CoC.

Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
include/net/bluetooth/l2cap.h
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_sock.c

index ae482f4..13bec91 100644 (file)
@@ -857,7 +857,6 @@ static inline long l2cap_chan_no_get_sndtimeo(struct l2cap_chan *chan)
 }
 
 extern bool disable_ertm;
-extern bool enable_lecoc;
 
 int l2cap_init_sockets(void);
 void l2cap_cleanup_sockets(void);
index 66fbac9..6e6b3a9 100644 (file)
@@ -5544,17 +5544,6 @@ static inline int l2cap_le_sig_cmd(struct l2cap_conn *conn,
 {
        int err = 0;
 
-       if (!enable_lecoc) {
-               switch (cmd->code) {
-               case L2CAP_LE_CONN_REQ:
-               case L2CAP_LE_CONN_RSP:
-               case L2CAP_LE_CREDITS:
-               case L2CAP_DISCONN_REQ:
-               case L2CAP_DISCONN_RSP:
-                       return -EINVAL;
-               }
-       }
-
        switch (cmd->code) {
        case L2CAP_COMMAND_REJ:
                l2cap_le_command_rej(conn, cmd, cmd_len, data);
index 27d3d6d..b247f9d 100644 (file)
@@ -36,8 +36,6 @@
 
 #include "smp.h"
 
-bool enable_lecoc;
-
 static struct bt_sock_list l2cap_sk_list = {
        .lock = __RW_LOCK_UNLOCKED(l2cap_sk_list.lock)
 };
@@ -111,8 +109,6 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
        }
 
        if (bdaddr_type_is_le(la.l2_bdaddr_type)) {
-               if (!enable_lecoc && la.l2_psm)
-                       return -EINVAL;
                /* We only allow ATT user space socket */
                if (la.l2_cid &&
                    la.l2_cid != __constant_cpu_to_le16(L2CAP_CID_ATT))
@@ -229,8 +225,6 @@ static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr,
                return -EINVAL;
 
        if (bdaddr_type_is_le(la.l2_bdaddr_type)) {
-               if (!enable_lecoc && la.l2_psm)
-                       return -EINVAL;
                /* We only allow ATT user space socket */
                if (la.l2_cid &&
                    la.l2_cid != __constant_cpu_to_le16(L2CAP_CID_ATT))
@@ -578,11 +572,6 @@ static int l2cap_sock_getsockopt(struct socket *sock, int level, int optname,
                break;
 
        case BT_SNDMTU:
-               if (!enable_lecoc) {
-                       err = -EPROTONOSUPPORT;
-                       break;
-               }
-
                if (!bdaddr_type_is_le(chan->src_type)) {
                        err = -EINVAL;
                        break;
@@ -598,11 +587,6 @@ static int l2cap_sock_getsockopt(struct socket *sock, int level, int optname,
                break;
 
        case BT_RCVMTU:
-               if (!enable_lecoc) {
-                       err = -EPROTONOSUPPORT;
-                       break;
-               }
-
                if (!bdaddr_type_is_le(chan->src_type)) {
                        err = -EINVAL;
                        break;
@@ -919,11 +903,6 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
                break;
 
        case BT_SNDMTU:
-               if (!enable_lecoc) {
-                       err = -EPROTONOSUPPORT;
-                       break;
-               }
-
                if (!bdaddr_type_is_le(chan->src_type)) {
                        err = -EINVAL;
                        break;
@@ -936,11 +915,6 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
                break;
 
        case BT_RCVMTU:
-               if (!enable_lecoc) {
-                       err = -EPROTONOSUPPORT;
-                       break;
-               }
-
                if (!bdaddr_type_is_le(chan->src_type)) {
                        err = -EINVAL;
                        break;
@@ -1643,6 +1617,3 @@ void l2cap_cleanup_sockets(void)
        bt_sock_unregister(BTPROTO_L2CAP);
        proto_unregister(&l2cap_proto);
 }
-
-module_param(enable_lecoc, bool, 0644);
-MODULE_PARM_DESC(enable_lecoc, "Enable support for LE CoC");