Lines Matching refs:chan
84 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_bind() local
130 bacpy(&chan->src, &la.l2_bdaddr); in l2cap_sock_bind()
131 chan->src_type = la.l2_bdaddr_type; in l2cap_sock_bind()
134 err = l2cap_add_scid(chan, __le16_to_cpu(la.l2_cid)); in l2cap_sock_bind()
136 err = l2cap_add_psm(chan, &la.l2_bdaddr, la.l2_psm); in l2cap_sock_bind()
141 switch (chan->chan_type) { in l2cap_sock_bind()
144 chan->sec_level = BT_SECURITY_SDP; in l2cap_sock_bind()
149 chan->sec_level = BT_SECURITY_SDP; in l2cap_sock_bind()
152 chan->sec_level = BT_SECURITY_SDP; in l2cap_sock_bind()
160 set_bit(FLAG_HOLD_HCI_CONN, &chan->flags); in l2cap_sock_bind()
167 if (chan->psm && bdaddr_type_is_le(chan->src_type) && in l2cap_sock_bind()
168 chan->mode != L2CAP_MODE_EXT_FLOWCTL) in l2cap_sock_bind()
169 chan->mode = L2CAP_MODE_LE_FLOWCTL; in l2cap_sock_bind()
171 chan->state = BT_BOUND; in l2cap_sock_bind()
181 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_init_pid() local
186 if (chan->mode != L2CAP_MODE_EXT_FLOWCTL) in l2cap_sock_init_pid()
198 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_connect() local
231 if (chan->src_type == BDADDR_BREDR && bacmp(&chan->src, BDADDR_ANY) && in l2cap_sock_connect()
239 if (chan->scid != L2CAP_CID_ATT || in l2cap_sock_connect()
249 chan->src_type = BDADDR_LE_PUBLIC; in l2cap_sock_connect()
252 if (chan->src_type != BDADDR_BREDR && la.l2_bdaddr_type == BDADDR_BREDR) in l2cap_sock_connect()
265 if (chan->psm && bdaddr_type_is_le(chan->src_type) && in l2cap_sock_connect()
266 chan->mode != L2CAP_MODE_EXT_FLOWCTL) in l2cap_sock_connect()
267 chan->mode = L2CAP_MODE_LE_FLOWCTL; in l2cap_sock_connect()
271 err = l2cap_chan_connect(chan, la.l2_psm, __le16_to_cpu(la.l2_cid), in l2cap_sock_connect()
289 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_listen() local
306 switch (chan->mode) { in l2cap_sock_listen()
335 atomic_set(&chan->nesting, L2CAP_NESTING_PARENT); in l2cap_sock_listen()
337 chan->state = BT_LISTEN; in l2cap_sock_listen()
406 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_getname() local
418 la->l2_psm = chan->psm; in l2cap_sock_getname()
421 bacpy(&la->l2_bdaddr, &chan->dst); in l2cap_sock_getname()
422 la->l2_cid = cpu_to_le16(chan->dcid); in l2cap_sock_getname()
423 la->l2_bdaddr_type = chan->dst_type; in l2cap_sock_getname()
425 bacpy(&la->l2_bdaddr, &chan->src); in l2cap_sock_getname()
426 la->l2_cid = cpu_to_le16(chan->scid); in l2cap_sock_getname()
427 la->l2_bdaddr_type = chan->src_type; in l2cap_sock_getname()
433 static int l2cap_get_mode(struct l2cap_chan *chan) in l2cap_get_mode() argument
435 switch (chan->mode) { in l2cap_get_mode()
455 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_getsockopt_old() local
474 if (bdaddr_type_is_le(chan->src_type) && in l2cap_sock_getsockopt_old()
475 chan->scid != L2CAP_CID_ATT) { in l2cap_sock_getsockopt_old()
481 switch (chan->mode) { in l2cap_sock_getsockopt_old()
495 opts.imtu = chan->imtu; in l2cap_sock_getsockopt_old()
496 opts.omtu = chan->omtu; in l2cap_sock_getsockopt_old()
497 opts.flush_to = chan->flush_to; in l2cap_sock_getsockopt_old()
498 opts.mode = chan->mode; in l2cap_sock_getsockopt_old()
499 opts.fcs = chan->fcs; in l2cap_sock_getsockopt_old()
500 opts.max_tx = chan->max_tx; in l2cap_sock_getsockopt_old()
501 opts.txwin_size = chan->tx_win; in l2cap_sock_getsockopt_old()
503 BT_DBG("mode 0x%2.2x", chan->mode); in l2cap_sock_getsockopt_old()
512 switch (chan->sec_level) { in l2cap_sock_getsockopt_old()
532 if (test_bit(FLAG_ROLE_SWITCH, &chan->flags)) in l2cap_sock_getsockopt_old()
535 if (test_bit(FLAG_FORCE_RELIABLE, &chan->flags)) in l2cap_sock_getsockopt_old()
552 cinfo.hci_handle = chan->conn->hcon->handle; in l2cap_sock_getsockopt_old()
553 memcpy(cinfo.dev_class, chan->conn->hcon->dev_class, 3); in l2cap_sock_getsockopt_old()
574 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_getsockopt() local
595 if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED && in l2cap_sock_getsockopt()
596 chan->chan_type != L2CAP_CHAN_FIXED && in l2cap_sock_getsockopt()
597 chan->chan_type != L2CAP_CHAN_RAW) { in l2cap_sock_getsockopt()
603 if (chan->conn) { in l2cap_sock_getsockopt()
604 sec.level = chan->conn->hcon->sec_level; in l2cap_sock_getsockopt()
607 sec.key_size = chan->conn->hcon->enc_key_size; in l2cap_sock_getsockopt()
609 sec.level = chan->sec_level; in l2cap_sock_getsockopt()
631 if (put_user(test_bit(FLAG_FLUSHABLE, &chan->flags), in l2cap_sock_getsockopt()
644 pwr.force_active = test_bit(FLAG_FORCE_ACTIVE, &chan->flags); in l2cap_sock_getsockopt()
653 if (put_user(chan->chan_policy, (u32 __user *) optval)) in l2cap_sock_getsockopt()
658 if (!bdaddr_type_is_le(chan->src_type)) { in l2cap_sock_getsockopt()
668 if (put_user(chan->omtu, (u16 __user *) optval)) in l2cap_sock_getsockopt()
673 if (!bdaddr_type_is_le(chan->src_type)) { in l2cap_sock_getsockopt()
678 if (put_user(chan->imtu, (u16 __user *) optval)) in l2cap_sock_getsockopt()
688 phys = hci_conn_get_phy(chan->conn->hcon); in l2cap_sock_getsockopt()
700 if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) { in l2cap_sock_getsockopt()
705 mode = l2cap_get_mode(chan); in l2cap_sock_getsockopt()
724 static bool l2cap_valid_mtu(struct l2cap_chan *chan, u16 mtu) in l2cap_valid_mtu() argument
726 switch (chan->scid) { in l2cap_valid_mtu()
744 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_setsockopt_old() local
755 if (bdaddr_type_is_le(chan->src_type)) { in l2cap_sock_setsockopt_old()
765 opts.imtu = chan->imtu; in l2cap_sock_setsockopt_old()
766 opts.omtu = chan->omtu; in l2cap_sock_setsockopt_old()
767 opts.flush_to = chan->flush_to; in l2cap_sock_setsockopt_old()
768 opts.mode = chan->mode; in l2cap_sock_setsockopt_old()
769 opts.fcs = chan->fcs; in l2cap_sock_setsockopt_old()
770 opts.max_tx = chan->max_tx; in l2cap_sock_setsockopt_old()
771 opts.txwin_size = chan->tx_win; in l2cap_sock_setsockopt_old()
784 if (!l2cap_valid_mtu(chan, opts.imtu)) { in l2cap_sock_setsockopt_old()
792 clear_bit(CONF_STATE2_DEVICE, &chan->conf_state); in l2cap_sock_setsockopt_old()
807 chan->mode = opts.mode; in l2cap_sock_setsockopt_old()
809 BT_DBG("mode 0x%2.2x", chan->mode); in l2cap_sock_setsockopt_old()
811 chan->imtu = opts.imtu; in l2cap_sock_setsockopt_old()
812 chan->omtu = opts.omtu; in l2cap_sock_setsockopt_old()
813 chan->fcs = opts.fcs; in l2cap_sock_setsockopt_old()
814 chan->max_tx = opts.max_tx; in l2cap_sock_setsockopt_old()
815 chan->tx_win = opts.txwin_size; in l2cap_sock_setsockopt_old()
816 chan->flush_to = opts.flush_to; in l2cap_sock_setsockopt_old()
831 chan->sec_level = BT_SECURITY_LOW; in l2cap_sock_setsockopt_old()
833 chan->sec_level = BT_SECURITY_MEDIUM; in l2cap_sock_setsockopt_old()
835 chan->sec_level = BT_SECURITY_HIGH; in l2cap_sock_setsockopt_old()
838 set_bit(FLAG_ROLE_SWITCH, &chan->flags); in l2cap_sock_setsockopt_old()
840 clear_bit(FLAG_ROLE_SWITCH, &chan->flags); in l2cap_sock_setsockopt_old()
843 set_bit(FLAG_FORCE_RELIABLE, &chan->flags); in l2cap_sock_setsockopt_old()
845 clear_bit(FLAG_FORCE_RELIABLE, &chan->flags); in l2cap_sock_setsockopt_old()
857 static int l2cap_set_mode(struct l2cap_chan *chan, u8 mode) in l2cap_set_mode() argument
861 if (bdaddr_type_is_le(chan->src_type)) in l2cap_set_mode()
864 clear_bit(CONF_STATE2_DEVICE, &chan->conf_state); in l2cap_set_mode()
867 if (!disable_ertm || bdaddr_type_is_le(chan->src_type)) in l2cap_set_mode()
872 if (!disable_ertm || bdaddr_type_is_le(chan->src_type)) in l2cap_set_mode()
877 if (!bdaddr_type_is_le(chan->src_type)) in l2cap_set_mode()
883 if (!bdaddr_type_is_le(chan->src_type)) in l2cap_set_mode()
891 chan->mode = mode; in l2cap_set_mode()
900 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_setsockopt() local
921 if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED && in l2cap_sock_setsockopt()
922 chan->chan_type != L2CAP_CHAN_FIXED && in l2cap_sock_setsockopt()
923 chan->chan_type != L2CAP_CHAN_RAW) { in l2cap_sock_setsockopt()
942 chan->sec_level = sec.level; in l2cap_sock_setsockopt()
944 if (!chan->conn) in l2cap_sock_setsockopt()
947 conn = chan->conn; in l2cap_sock_setsockopt()
950 if (chan->scid == L2CAP_CID_ATT) { in l2cap_sock_setsockopt()
956 set_bit(FLAG_PENDING_SECURITY, &chan->flags); in l2cap_sock_setsockopt()
958 chan->state = BT_CONFIG; in l2cap_sock_setsockopt()
964 if (!l2cap_chan_check_security(chan, true)) in l2cap_sock_setsockopt()
986 set_bit(FLAG_DEFER_SETUP, &chan->flags); in l2cap_sock_setsockopt()
989 clear_bit(FLAG_DEFER_SETUP, &chan->flags); in l2cap_sock_setsockopt()
1005 conn = chan->conn; in l2cap_sock_setsockopt()
1015 set_bit(FLAG_FLUSHABLE, &chan->flags); in l2cap_sock_setsockopt()
1017 clear_bit(FLAG_FLUSHABLE, &chan->flags); in l2cap_sock_setsockopt()
1021 if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED && in l2cap_sock_setsockopt()
1022 chan->chan_type != L2CAP_CHAN_RAW) { in l2cap_sock_setsockopt()
1036 set_bit(FLAG_FORCE_ACTIVE, &chan->flags); in l2cap_sock_setsockopt()
1038 clear_bit(FLAG_FORCE_ACTIVE, &chan->flags); in l2cap_sock_setsockopt()
1052 if (chan->mode != L2CAP_MODE_ERTM && in l2cap_sock_setsockopt()
1053 chan->mode != L2CAP_MODE_STREAMING) { in l2cap_sock_setsockopt()
1058 chan->chan_policy = (u8) opt; in l2cap_sock_setsockopt()
1061 chan->move_role == L2CAP_MOVE_ROLE_NONE) in l2cap_sock_setsockopt()
1062 l2cap_move_start(chan); in l2cap_sock_setsockopt()
1067 if (!bdaddr_type_is_le(chan->src_type)) { in l2cap_sock_setsockopt()
1079 if (!bdaddr_type_is_le(chan->src_type)) { in l2cap_sock_setsockopt()
1084 if (chan->mode == L2CAP_MODE_LE_FLOWCTL && in l2cap_sock_setsockopt()
1095 if (chan->mode == L2CAP_MODE_EXT_FLOWCTL && in l2cap_sock_setsockopt()
1097 err = l2cap_chan_reconfigure(chan, mtu); in l2cap_sock_setsockopt()
1099 chan->imtu = mtu; in l2cap_sock_setsockopt()
1116 if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) { in l2cap_sock_setsockopt()
1128 err = l2cap_set_mode(chan, mode); in l2cap_sock_setsockopt()
1132 BT_DBG("mode 0x%2.2x", chan->mode); in l2cap_sock_setsockopt()
1149 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_sendmsg() local
1170 l2cap_chan_lock(chan); in l2cap_sock_sendmsg()
1171 err = l2cap_chan_send(chan, msg, len); in l2cap_sock_sendmsg()
1172 l2cap_chan_unlock(chan); in l2cap_sock_sendmsg()
1188 if (pi->chan->mode == L2CAP_MODE_EXT_FLOWCTL) { in l2cap_sock_recvmsg()
1190 pi->chan->state = BT_CONNECTED; in l2cap_sock_recvmsg()
1191 __l2cap_ecred_conn_rsp_defer(pi->chan); in l2cap_sock_recvmsg()
1192 } else if (bdaddr_type_is_le(pi->chan->src_type)) { in l2cap_sock_recvmsg()
1194 pi->chan->state = BT_CONNECTED; in l2cap_sock_recvmsg()
1195 __l2cap_le_connect_rsp_defer(pi->chan); in l2cap_sock_recvmsg()
1198 pi->chan->state = BT_CONFIG; in l2cap_sock_recvmsg()
1199 __l2cap_connect_rsp_defer(pi->chan); in l2cap_sock_recvmsg()
1213 if (pi->chan->mode != L2CAP_MODE_ERTM) in l2cap_sock_recvmsg()
1220 if (!test_bit(CONN_LOCAL_BUSY, &pi->chan->conn_state)) in l2cap_sock_recvmsg()
1235 l2cap_chan_busy(pi->chan, 0); in l2cap_sock_recvmsg()
1254 l2cap_chan_put(l2cap_pi(sk)->chan); in l2cap_sock_kill()
1259 static int __l2cap_wait_ack(struct sock *sk, struct l2cap_chan *chan) in __l2cap_wait_ack() argument
1271 chan->unacked_frames, time_after(jiffies, timeout) ? 0 : in __l2cap_wait_ack()
1296 } while (chan->unacked_frames > 0 && in __l2cap_wait_ack()
1297 chan->state == BT_CONNECTED); in __l2cap_wait_ack()
1307 struct l2cap_chan *chan; in l2cap_sock_shutdown() local
1333 chan = l2cap_pi(sk)->chan; in l2cap_sock_shutdown()
1335 l2cap_chan_hold(chan); in l2cap_sock_shutdown()
1337 BT_DBG("chan %p state %s", chan, state_to_string(chan->state)); in l2cap_sock_shutdown()
1339 if (chan->mode == L2CAP_MODE_ERTM && in l2cap_sock_shutdown()
1340 chan->unacked_frames > 0 && in l2cap_sock_shutdown()
1341 chan->state == BT_CONNECTED) { in l2cap_sock_shutdown()
1342 err = __l2cap_wait_ack(sk, chan); in l2cap_sock_shutdown()
1364 l2cap_chan_lock(chan); in l2cap_sock_shutdown()
1365 conn = chan->conn; in l2cap_sock_shutdown()
1369 l2cap_chan_unlock(chan); in l2cap_sock_shutdown()
1375 l2cap_chan_lock(chan); in l2cap_sock_shutdown()
1376 l2cap_chan_close(chan, 0); in l2cap_sock_shutdown()
1377 l2cap_chan_unlock(chan); in l2cap_sock_shutdown()
1392 l2cap_chan_put(chan); in l2cap_sock_shutdown()
1410 struct l2cap_chan *chan; in l2cap_sock_release() local
1420 chan = l2cap_pi(sk)->chan; in l2cap_sock_release()
1422 l2cap_chan_hold(chan); in l2cap_sock_release()
1423 l2cap_chan_lock(chan); in l2cap_sock_release()
1428 l2cap_chan_unlock(chan); in l2cap_sock_release()
1429 l2cap_chan_put(chan); in l2cap_sock_release()
1443 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_cleanup_listen() local
1445 BT_DBG("child chan %p state %s", chan, in l2cap_sock_cleanup_listen()
1446 state_to_string(chan->state)); in l2cap_sock_cleanup_listen()
1448 l2cap_chan_hold(chan); in l2cap_sock_cleanup_listen()
1449 l2cap_chan_lock(chan); in l2cap_sock_cleanup_listen()
1451 __clear_chan_timer(chan); in l2cap_sock_cleanup_listen()
1452 l2cap_chan_close(chan, ECONNRESET); in l2cap_sock_cleanup_listen()
1455 l2cap_chan_unlock(chan); in l2cap_sock_cleanup_listen()
1456 l2cap_chan_put(chan); in l2cap_sock_cleanup_listen()
1460 static struct l2cap_chan *l2cap_sock_new_connection_cb(struct l2cap_chan *chan) in l2cap_sock_new_connection_cb() argument
1462 struct sock *sk, *parent = chan->data; in l2cap_sock_new_connection_cb()
1488 return l2cap_pi(sk)->chan; in l2cap_sock_new_connection_cb()
1491 static int l2cap_sock_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb) in l2cap_sock_recv_cb() argument
1493 struct sock *sk = chan->data; in l2cap_sock_recv_cb()
1503 if (chan->mode != L2CAP_MODE_ERTM && in l2cap_sock_recv_cb()
1504 chan->mode != L2CAP_MODE_STREAMING) { in l2cap_sock_recv_cb()
1524 if (err < 0 && chan->mode == L2CAP_MODE_ERTM) { in l2cap_sock_recv_cb()
1526 l2cap_chan_busy(chan, 1); in l2cap_sock_recv_cb()
1536 static void l2cap_sock_close_cb(struct l2cap_chan *chan) in l2cap_sock_close_cb() argument
1538 struct sock *sk = chan->data; in l2cap_sock_close_cb()
1546 static void l2cap_sock_teardown_cb(struct l2cap_chan *chan, int err) in l2cap_sock_teardown_cb() argument
1548 struct sock *sk = chan->data; in l2cap_sock_teardown_cb()
1554 BT_DBG("chan %p state %s", chan, state_to_string(chan->state)); in l2cap_sock_teardown_cb()
1563 lock_sock_nested(sk, atomic_read(&chan->nesting)); in l2cap_sock_teardown_cb()
1567 switch (chan->state) { in l2cap_sock_teardown_cb()
1575 chan->state = BT_CLOSED; in l2cap_sock_teardown_cb()
1580 chan->state = BT_CLOSED; in l2cap_sock_teardown_cb()
1600 static void l2cap_sock_state_change_cb(struct l2cap_chan *chan, int state, in l2cap_sock_state_change_cb() argument
1603 struct sock *sk = chan->data; in l2cap_sock_state_change_cb()
1611 static struct sk_buff *l2cap_sock_alloc_skb_cb(struct l2cap_chan *chan, in l2cap_sock_alloc_skb_cb() argument
1615 struct sock *sk = chan->data; in l2cap_sock_alloc_skb_cb()
1619 l2cap_chan_unlock(chan); in l2cap_sock_alloc_skb_cb()
1621 l2cap_chan_lock(chan); in l2cap_sock_alloc_skb_cb()
1628 bt_cb(skb)->l2cap.chan = chan; in l2cap_sock_alloc_skb_cb()
1633 static void l2cap_sock_ready_cb(struct l2cap_chan *chan) in l2cap_sock_ready_cb() argument
1635 struct sock *sk = chan->data; in l2cap_sock_ready_cb()
1653 static void l2cap_sock_defer_cb(struct l2cap_chan *chan) in l2cap_sock_defer_cb() argument
1655 struct sock *parent, *sk = chan->data; in l2cap_sock_defer_cb()
1666 static void l2cap_sock_resume_cb(struct l2cap_chan *chan) in l2cap_sock_resume_cb() argument
1668 struct sock *sk = chan->data; in l2cap_sock_resume_cb()
1670 if (test_and_clear_bit(FLAG_PENDING_SECURITY, &chan->flags)) { in l2cap_sock_resume_cb()
1672 chan->state = BT_CONNECTED; in l2cap_sock_resume_cb()
1679 static void l2cap_sock_set_shutdown_cb(struct l2cap_chan *chan) in l2cap_sock_set_shutdown_cb() argument
1681 struct sock *sk = chan->data; in l2cap_sock_set_shutdown_cb()
1688 static long l2cap_sock_get_sndtimeo_cb(struct l2cap_chan *chan) in l2cap_sock_get_sndtimeo_cb() argument
1690 struct sock *sk = chan->data; in l2cap_sock_get_sndtimeo_cb()
1695 static struct pid *l2cap_sock_get_peer_pid_cb(struct l2cap_chan *chan) in l2cap_sock_get_peer_pid_cb() argument
1697 struct sock *sk = chan->data; in l2cap_sock_get_peer_pid_cb()
1702 static void l2cap_sock_suspend_cb(struct l2cap_chan *chan) in l2cap_sock_suspend_cb() argument
1704 struct sock *sk = chan->data; in l2cap_sock_suspend_cb()
1710 static int l2cap_sock_filter(struct l2cap_chan *chan, struct sk_buff *skb) in l2cap_sock_filter() argument
1712 struct sock *sk = chan->data; in l2cap_sock_filter()
1714 switch (chan->mode) { in l2cap_sock_filter()
1745 if (l2cap_pi(sk)->chan) { in l2cap_sock_destruct()
1746 l2cap_pi(sk)->chan->data = NULL; in l2cap_sock_destruct()
1747 l2cap_chan_put(l2cap_pi(sk)->chan); in l2cap_sock_destruct()
1774 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_init() local
1779 struct l2cap_chan *pchan = l2cap_pi(parent)->chan; in l2cap_sock_init()
1784 chan->chan_type = pchan->chan_type; in l2cap_sock_init()
1785 chan->imtu = pchan->imtu; in l2cap_sock_init()
1786 chan->omtu = pchan->omtu; in l2cap_sock_init()
1787 chan->conf_state = pchan->conf_state; in l2cap_sock_init()
1788 chan->mode = pchan->mode; in l2cap_sock_init()
1789 chan->fcs = pchan->fcs; in l2cap_sock_init()
1790 chan->max_tx = pchan->max_tx; in l2cap_sock_init()
1791 chan->tx_win = pchan->tx_win; in l2cap_sock_init()
1792 chan->tx_win_max = pchan->tx_win_max; in l2cap_sock_init()
1793 chan->sec_level = pchan->sec_level; in l2cap_sock_init()
1794 chan->flags = pchan->flags; in l2cap_sock_init()
1795 chan->tx_credits = pchan->tx_credits; in l2cap_sock_init()
1796 chan->rx_credits = pchan->rx_credits; in l2cap_sock_init()
1798 if (chan->chan_type == L2CAP_CHAN_FIXED) { in l2cap_sock_init()
1799 chan->scid = pchan->scid; in l2cap_sock_init()
1800 chan->dcid = pchan->scid; in l2cap_sock_init()
1807 chan->chan_type = L2CAP_CHAN_RAW; in l2cap_sock_init()
1810 chan->chan_type = L2CAP_CHAN_CONN_LESS; in l2cap_sock_init()
1815 chan->chan_type = L2CAP_CHAN_CONN_ORIENTED; in l2cap_sock_init()
1819 chan->imtu = L2CAP_DEFAULT_MTU; in l2cap_sock_init()
1820 chan->omtu = 0; in l2cap_sock_init()
1822 chan->mode = L2CAP_MODE_ERTM; in l2cap_sock_init()
1823 set_bit(CONF_STATE2_DEVICE, &chan->conf_state); in l2cap_sock_init()
1825 chan->mode = L2CAP_MODE_BASIC; in l2cap_sock_init()
1828 l2cap_chan_set_defaults(chan); in l2cap_sock_init()
1832 chan->flush_to = L2CAP_DEFAULT_FLUSH_TO; in l2cap_sock_init()
1834 chan->data = sk; in l2cap_sock_init()
1835 chan->ops = &l2cap_chan_ops; in l2cap_sock_init()
1848 struct l2cap_chan *chan; in l2cap_sock_alloc() local
1865 chan = l2cap_chan_create(); in l2cap_sock_alloc()
1866 if (!chan) { in l2cap_sock_alloc()
1871 l2cap_chan_hold(chan); in l2cap_sock_alloc()
1873 l2cap_pi(sk)->chan = chan; in l2cap_sock_alloc()