|
|
@@ -498,18 +498,10 @@ void __l2cap_chan_add(struct l2cap_conn *conn, struct l2cap_chan *chan)
|
|
|
|
|
|
switch (chan->chan_type) {
|
|
|
case L2CAP_CHAN_CONN_ORIENTED:
|
|
|
- if (conn->hcon->type == LE_LINK) {
|
|
|
- if (chan->dcid == L2CAP_CID_ATT) {
|
|
|
- chan->omtu = L2CAP_DEFAULT_MTU;
|
|
|
- chan->scid = L2CAP_CID_ATT;
|
|
|
- } else {
|
|
|
- chan->scid = l2cap_alloc_cid(conn);
|
|
|
- }
|
|
|
- } else {
|
|
|
- /* Alloc CID for connection-oriented socket */
|
|
|
- chan->scid = l2cap_alloc_cid(conn);
|
|
|
+ /* Alloc CID for connection-oriented socket */
|
|
|
+ chan->scid = l2cap_alloc_cid(conn);
|
|
|
+ if (conn->hcon->type == ACL_LINK)
|
|
|
chan->omtu = L2CAP_DEFAULT_MTU;
|
|
|
- }
|
|
|
break;
|
|
|
|
|
|
case L2CAP_CHAN_CONN_LESS:
|
|
|
@@ -7025,7 +7017,12 @@ int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid,
|
|
|
goto done;
|
|
|
}
|
|
|
|
|
|
- if (chan->chan_type == L2CAP_CHAN_CONN_ORIENTED && !(psm || cid)) {
|
|
|
+ if (chan->chan_type == L2CAP_CHAN_CONN_ORIENTED && !psm) {
|
|
|
+ err = -EINVAL;
|
|
|
+ goto done;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (chan->chan_type == L2CAP_CHAN_FIXED && !cid) {
|
|
|
err = -EINVAL;
|
|
|
goto done;
|
|
|
}
|