Lines Matching refs:chan

86 	struct l2cap_chan *chan = l2cap_pi(sk)->chan;  in l2cap_sock_bind()  local
132 bacpy(&chan->src, &la.l2_bdaddr); in l2cap_sock_bind()
133 chan->src_type = la.l2_bdaddr_type; in l2cap_sock_bind()
136 err = l2cap_add_scid(chan, __le16_to_cpu(la.l2_cid)); in l2cap_sock_bind()
138 err = l2cap_add_psm(chan, &la.l2_bdaddr, la.l2_psm); in l2cap_sock_bind()
143 switch (chan->chan_type) { in l2cap_sock_bind()
146 chan->sec_level = BT_SECURITY_SDP; in l2cap_sock_bind()
151 chan->sec_level = BT_SECURITY_SDP; in l2cap_sock_bind()
154 chan->sec_level = BT_SECURITY_SDP; in l2cap_sock_bind()
162 set_bit(FLAG_HOLD_HCI_CONN, &chan->flags); in l2cap_sock_bind()
169 if (chan->psm && bdaddr_type_is_le(chan->src_type) && in l2cap_sock_bind()
170 chan->mode != L2CAP_MODE_EXT_FLOWCTL) in l2cap_sock_bind()
171 chan->mode = L2CAP_MODE_LE_FLOWCTL; in l2cap_sock_bind()
173 chan->state = BT_BOUND; in l2cap_sock_bind()
185 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_connect() local
218 if (chan->src_type == BDADDR_BREDR && bacmp(&chan->src, BDADDR_ANY) && in l2cap_sock_connect()
226 if (chan->scid != L2CAP_CID_ATT || in l2cap_sock_connect()
236 chan->src_type = BDADDR_LE_PUBLIC; in l2cap_sock_connect()
239 if (chan->src_type != BDADDR_BREDR && la.l2_bdaddr_type == BDADDR_BREDR) in l2cap_sock_connect()
252 if (chan->psm && bdaddr_type_is_le(chan->src_type) && in l2cap_sock_connect()
253 chan->mode != L2CAP_MODE_EXT_FLOWCTL) in l2cap_sock_connect()
254 chan->mode = L2CAP_MODE_LE_FLOWCTL; in l2cap_sock_connect()
256 err = l2cap_chan_connect(chan, la.l2_psm, __le16_to_cpu(la.l2_cid), in l2cap_sock_connect()
275 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_listen() local
292 switch (chan->mode) { in l2cap_sock_listen()
319 atomic_set(&chan->nesting, L2CAP_NESTING_PARENT); in l2cap_sock_listen()
321 chan->state = BT_LISTEN; in l2cap_sock_listen()
390 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_getname() local
402 la->l2_psm = chan->psm; in l2cap_sock_getname()
405 bacpy(&la->l2_bdaddr, &chan->dst); in l2cap_sock_getname()
406 la->l2_cid = cpu_to_le16(chan->dcid); in l2cap_sock_getname()
407 la->l2_bdaddr_type = chan->dst_type; in l2cap_sock_getname()
409 bacpy(&la->l2_bdaddr, &chan->src); in l2cap_sock_getname()
410 la->l2_cid = cpu_to_le16(chan->scid); in l2cap_sock_getname()
411 la->l2_bdaddr_type = chan->src_type; in l2cap_sock_getname()
417 static int l2cap_get_mode(struct l2cap_chan *chan) in l2cap_get_mode() argument
419 switch (chan->mode) { in l2cap_get_mode()
439 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_getsockopt_old() local
459 if (bdaddr_type_is_le(chan->src_type) && in l2cap_sock_getsockopt_old()
460 chan->scid != L2CAP_CID_ATT) { in l2cap_sock_getsockopt_old()
466 switch (chan->mode) { in l2cap_sock_getsockopt_old()
480 opts.imtu = chan->imtu; in l2cap_sock_getsockopt_old()
481 opts.omtu = chan->omtu; in l2cap_sock_getsockopt_old()
482 opts.flush_to = chan->flush_to; in l2cap_sock_getsockopt_old()
483 opts.mode = chan->mode; in l2cap_sock_getsockopt_old()
484 opts.fcs = chan->fcs; in l2cap_sock_getsockopt_old()
485 opts.max_tx = chan->max_tx; in l2cap_sock_getsockopt_old()
486 opts.txwin_size = chan->tx_win; in l2cap_sock_getsockopt_old()
488 BT_DBG("mode 0x%2.2x", chan->mode); in l2cap_sock_getsockopt_old()
497 switch (chan->sec_level) { in l2cap_sock_getsockopt_old()
517 if (test_bit(FLAG_ROLE_SWITCH, &chan->flags)) in l2cap_sock_getsockopt_old()
520 if (test_bit(FLAG_FORCE_RELIABLE, &chan->flags)) in l2cap_sock_getsockopt_old()
537 cinfo.hci_handle = chan->conn->hcon->handle; in l2cap_sock_getsockopt_old()
538 memcpy(cinfo.dev_class, chan->conn->hcon->dev_class, 3); in l2cap_sock_getsockopt_old()
559 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_getsockopt() local
580 if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED && in l2cap_sock_getsockopt()
581 chan->chan_type != L2CAP_CHAN_FIXED && in l2cap_sock_getsockopt()
582 chan->chan_type != L2CAP_CHAN_RAW) { in l2cap_sock_getsockopt()
588 if (chan->conn) { in l2cap_sock_getsockopt()
589 sec.level = chan->conn->hcon->sec_level; in l2cap_sock_getsockopt()
592 sec.key_size = chan->conn->hcon->enc_key_size; in l2cap_sock_getsockopt()
594 sec.level = chan->sec_level; in l2cap_sock_getsockopt()
616 if (put_user(test_bit(FLAG_FLUSHABLE, &chan->flags), in l2cap_sock_getsockopt()
629 pwr.force_active = test_bit(FLAG_FORCE_ACTIVE, &chan->flags); in l2cap_sock_getsockopt()
638 if (put_user(chan->chan_policy, (u32 __user *) optval)) in l2cap_sock_getsockopt()
643 if (!bdaddr_type_is_le(chan->src_type)) { in l2cap_sock_getsockopt()
653 if (put_user(chan->omtu, (u16 __user *) optval)) in l2cap_sock_getsockopt()
658 if (!bdaddr_type_is_le(chan->src_type)) { in l2cap_sock_getsockopt()
663 if (put_user(chan->imtu, (u16 __user *) optval)) in l2cap_sock_getsockopt()
673 phys = hci_conn_get_phy(chan->conn->hcon); in l2cap_sock_getsockopt()
685 if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) { in l2cap_sock_getsockopt()
690 mode = l2cap_get_mode(chan); in l2cap_sock_getsockopt()
709 static bool l2cap_valid_mtu(struct l2cap_chan *chan, u16 mtu) in l2cap_valid_mtu() argument
711 switch (chan->scid) { in l2cap_valid_mtu()
729 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_setsockopt_old() local
740 if (bdaddr_type_is_le(chan->src_type)) { in l2cap_sock_setsockopt_old()
750 opts.imtu = chan->imtu; in l2cap_sock_setsockopt_old()
751 opts.omtu = chan->omtu; in l2cap_sock_setsockopt_old()
752 opts.flush_to = chan->flush_to; in l2cap_sock_setsockopt_old()
753 opts.mode = chan->mode; in l2cap_sock_setsockopt_old()
754 opts.fcs = chan->fcs; in l2cap_sock_setsockopt_old()
755 opts.max_tx = chan->max_tx; in l2cap_sock_setsockopt_old()
756 opts.txwin_size = chan->tx_win; in l2cap_sock_setsockopt_old()
768 if (!l2cap_valid_mtu(chan, opts.imtu)) { in l2cap_sock_setsockopt_old()
776 clear_bit(CONF_STATE2_DEVICE, &chan->conf_state); in l2cap_sock_setsockopt_old()
791 chan->mode = opts.mode; in l2cap_sock_setsockopt_old()
793 BT_DBG("mode 0x%2.2x", chan->mode); in l2cap_sock_setsockopt_old()
795 chan->imtu = opts.imtu; in l2cap_sock_setsockopt_old()
796 chan->omtu = opts.omtu; in l2cap_sock_setsockopt_old()
797 chan->fcs = opts.fcs; in l2cap_sock_setsockopt_old()
798 chan->max_tx = opts.max_tx; in l2cap_sock_setsockopt_old()
799 chan->tx_win = opts.txwin_size; in l2cap_sock_setsockopt_old()
800 chan->flush_to = opts.flush_to; in l2cap_sock_setsockopt_old()
814 chan->sec_level = BT_SECURITY_LOW; in l2cap_sock_setsockopt_old()
816 chan->sec_level = BT_SECURITY_MEDIUM; in l2cap_sock_setsockopt_old()
818 chan->sec_level = BT_SECURITY_HIGH; in l2cap_sock_setsockopt_old()
821 set_bit(FLAG_ROLE_SWITCH, &chan->flags); in l2cap_sock_setsockopt_old()
823 clear_bit(FLAG_ROLE_SWITCH, &chan->flags); in l2cap_sock_setsockopt_old()
826 set_bit(FLAG_FORCE_RELIABLE, &chan->flags); in l2cap_sock_setsockopt_old()
828 clear_bit(FLAG_FORCE_RELIABLE, &chan->flags); in l2cap_sock_setsockopt_old()
840 static int l2cap_set_mode(struct l2cap_chan *chan, u8 mode) in l2cap_set_mode() argument
844 if (bdaddr_type_is_le(chan->src_type)) in l2cap_set_mode()
847 clear_bit(CONF_STATE2_DEVICE, &chan->conf_state); in l2cap_set_mode()
850 if (!disable_ertm || bdaddr_type_is_le(chan->src_type)) in l2cap_set_mode()
855 if (!disable_ertm || bdaddr_type_is_le(chan->src_type)) in l2cap_set_mode()
860 if (!bdaddr_type_is_le(chan->src_type)) in l2cap_set_mode()
866 if (!bdaddr_type_is_le(chan->src_type)) in l2cap_set_mode()
874 chan->mode = mode; in l2cap_set_mode()
883 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_setsockopt() local
904 if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED && in l2cap_sock_setsockopt()
905 chan->chan_type != L2CAP_CHAN_FIXED && in l2cap_sock_setsockopt()
906 chan->chan_type != L2CAP_CHAN_RAW) { in l2cap_sock_setsockopt()
923 chan->sec_level = sec.level; in l2cap_sock_setsockopt()
925 if (!chan->conn) in l2cap_sock_setsockopt()
928 conn = chan->conn; in l2cap_sock_setsockopt()
931 if (chan->scid == L2CAP_CID_ATT) { in l2cap_sock_setsockopt()
937 set_bit(FLAG_PENDING_SECURITY, &chan->flags); in l2cap_sock_setsockopt()
939 chan->state = BT_CONFIG; in l2cap_sock_setsockopt()
945 if (!l2cap_chan_check_security(chan, true)) in l2cap_sock_setsockopt()
966 set_bit(FLAG_DEFER_SETUP, &chan->flags); in l2cap_sock_setsockopt()
969 clear_bit(FLAG_DEFER_SETUP, &chan->flags); in l2cap_sock_setsockopt()
984 conn = chan->conn; in l2cap_sock_setsockopt()
994 set_bit(FLAG_FLUSHABLE, &chan->flags); in l2cap_sock_setsockopt()
996 clear_bit(FLAG_FLUSHABLE, &chan->flags); in l2cap_sock_setsockopt()
1000 if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED && in l2cap_sock_setsockopt()
1001 chan->chan_type != L2CAP_CHAN_RAW) { in l2cap_sock_setsockopt()
1013 set_bit(FLAG_FORCE_ACTIVE, &chan->flags); in l2cap_sock_setsockopt()
1015 clear_bit(FLAG_FORCE_ACTIVE, &chan->flags); in l2cap_sock_setsockopt()
1027 if (!bdaddr_type_is_le(chan->src_type)) { in l2cap_sock_setsockopt()
1039 if (!bdaddr_type_is_le(chan->src_type)) { in l2cap_sock_setsockopt()
1044 if (chan->mode == L2CAP_MODE_LE_FLOWCTL && in l2cap_sock_setsockopt()
1054 if (chan->mode == L2CAP_MODE_EXT_FLOWCTL && in l2cap_sock_setsockopt()
1056 err = l2cap_chan_reconfigure(chan, mtu); in l2cap_sock_setsockopt()
1058 chan->imtu = mtu; in l2cap_sock_setsockopt()
1075 if (chan->chan_type != L2CAP_CHAN_CONN_ORIENTED) { in l2cap_sock_setsockopt()
1087 err = l2cap_set_mode(chan, mode); in l2cap_sock_setsockopt()
1091 BT_DBG("mode 0x%2.2x", chan->mode); in l2cap_sock_setsockopt()
1108 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_sendmsg() local
1138 l2cap_chan_lock(chan); in l2cap_sock_sendmsg()
1139 err = l2cap_chan_send(chan, msg, len, &sockc); in l2cap_sock_sendmsg()
1140 l2cap_chan_unlock(chan); in l2cap_sock_sendmsg()
1145 static void l2cap_publish_rx_avail(struct l2cap_chan *chan) in l2cap_publish_rx_avail() argument
1147 struct sock *sk = chan->data; in l2cap_publish_rx_avail()
1152 l2cap_chan_rx_avail(chan, 0); in l2cap_publish_rx_avail()
1156 if (!chan->mps) { in l2cap_publish_rx_avail()
1157 l2cap_chan_rx_avail(chan, -1); in l2cap_publish_rx_avail()
1165 expected_skbs = DIV_ROUND_UP(avail, chan->mps); in l2cap_publish_rx_avail()
1168 l2cap_chan_rx_avail(chan, avail - skb_overhead); in l2cap_publish_rx_avail()
1170 l2cap_chan_rx_avail(chan, -1); in l2cap_publish_rx_avail()
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()
1214 pi->chan->mode != L2CAP_MODE_LE_FLOWCTL && in l2cap_sock_recvmsg()
1215 pi->chan->mode != L2CAP_MODE_EXT_FLOWCTL) in l2cap_sock_recvmsg()
1220 l2cap_publish_rx_avail(pi->chan); in l2cap_sock_recvmsg()
1238 if (test_bit(CONN_LOCAL_BUSY, &pi->chan->conn_state) && in l2cap_sock_recvmsg()
1240 l2cap_chan_busy(pi->chan, 0); in l2cap_sock_recvmsg()
1260 l2cap_pi(sk)->chan->data = NULL; in l2cap_sock_kill()
1263 l2cap_chan_put(l2cap_pi(sk)->chan); in l2cap_sock_kill()
1268 static int __l2cap_wait_ack(struct sock *sk, struct l2cap_chan *chan) in __l2cap_wait_ack() argument
1280 chan->unacked_frames, time_after(jiffies, timeout) ? 0 : in __l2cap_wait_ack()
1305 } while (chan->unacked_frames > 0 && in __l2cap_wait_ack()
1306 chan->state == BT_CONNECTED); in __l2cap_wait_ack()
1316 struct l2cap_chan *chan; in l2cap_sock_shutdown() local
1343 chan = l2cap_chan_hold_unless_zero(l2cap_pi(sk)->chan); in l2cap_sock_shutdown()
1344 if (!chan) in l2cap_sock_shutdown()
1347 BT_DBG("chan %p state %s", chan, state_to_string(chan->state)); in l2cap_sock_shutdown()
1349 if (chan->mode == L2CAP_MODE_ERTM && in l2cap_sock_shutdown()
1350 chan->unacked_frames > 0 && in l2cap_sock_shutdown()
1351 chan->state == BT_CONNECTED) { in l2cap_sock_shutdown()
1352 err = __l2cap_wait_ack(sk, chan); in l2cap_sock_shutdown()
1374 l2cap_chan_lock(chan); in l2cap_sock_shutdown()
1376 conn = l2cap_conn_hold_unless_zero(chan->conn); in l2cap_sock_shutdown()
1377 l2cap_chan_unlock(chan); in l2cap_sock_shutdown()
1383 l2cap_chan_lock(chan); in l2cap_sock_shutdown()
1384 l2cap_chan_close(chan, 0); in l2cap_sock_shutdown()
1385 l2cap_chan_unlock(chan); in l2cap_sock_shutdown()
1400 l2cap_chan_put(chan); in l2cap_sock_shutdown()
1418 struct l2cap_chan *chan; in l2cap_sock_release() local
1429 chan = l2cap_pi(sk)->chan; in l2cap_sock_release()
1431 l2cap_chan_hold(chan); in l2cap_sock_release()
1432 l2cap_chan_lock(chan); in l2cap_sock_release()
1437 l2cap_chan_unlock(chan); in l2cap_sock_release()
1438 l2cap_chan_put(chan); in l2cap_sock_release()
1452 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_cleanup_listen() local
1454 BT_DBG("child chan %p state %s", chan, in l2cap_sock_cleanup_listen()
1455 state_to_string(chan->state)); in l2cap_sock_cleanup_listen()
1457 l2cap_chan_hold(chan); in l2cap_sock_cleanup_listen()
1458 l2cap_chan_lock(chan); in l2cap_sock_cleanup_listen()
1460 __clear_chan_timer(chan); in l2cap_sock_cleanup_listen()
1461 l2cap_chan_close(chan, ECONNRESET); in l2cap_sock_cleanup_listen()
1464 l2cap_chan_unlock(chan); in l2cap_sock_cleanup_listen()
1465 l2cap_chan_put(chan); in l2cap_sock_cleanup_listen()
1469 static struct l2cap_chan *l2cap_sock_new_connection_cb(struct l2cap_chan *chan) in l2cap_sock_new_connection_cb() argument
1471 struct sock *sk, *parent = chan->data; in l2cap_sock_new_connection_cb()
1497 return l2cap_pi(sk)->chan; in l2cap_sock_new_connection_cb()
1500 static int l2cap_sock_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb) in l2cap_sock_recv_cb() argument
1506 sk = chan->data; in l2cap_sock_recv_cb()
1512 if (chan->mode == L2CAP_MODE_ERTM && !list_empty(&pi->rx_busy)) { in l2cap_sock_recv_cb()
1517 if (chan->mode != L2CAP_MODE_ERTM && in l2cap_sock_recv_cb()
1518 chan->mode != L2CAP_MODE_STREAMING && in l2cap_sock_recv_cb()
1519 chan->mode != L2CAP_MODE_LE_FLOWCTL && in l2cap_sock_recv_cb()
1520 chan->mode != L2CAP_MODE_EXT_FLOWCTL) { in l2cap_sock_recv_cb()
1531 l2cap_publish_rx_avail(chan); in l2cap_sock_recv_cb()
1543 (chan->mode == L2CAP_MODE_ERTM || in l2cap_sock_recv_cb()
1544 chan->mode == L2CAP_MODE_LE_FLOWCTL || in l2cap_sock_recv_cb()
1545 chan->mode == L2CAP_MODE_EXT_FLOWCTL)) { in l2cap_sock_recv_cb()
1554 l2cap_chan_busy(chan, 1); in l2cap_sock_recv_cb()
1564 static void l2cap_sock_close_cb(struct l2cap_chan *chan) in l2cap_sock_close_cb() argument
1566 struct sock *sk = chan->data; in l2cap_sock_close_cb()
1574 static void l2cap_sock_teardown_cb(struct l2cap_chan *chan, int err) in l2cap_sock_teardown_cb() argument
1576 struct sock *sk = chan->data; in l2cap_sock_teardown_cb()
1582 BT_DBG("chan %p state %s", chan, state_to_string(chan->state)); in l2cap_sock_teardown_cb()
1591 lock_sock_nested(sk, atomic_read(&chan->nesting)); in l2cap_sock_teardown_cb()
1595 switch (chan->state) { in l2cap_sock_teardown_cb()
1603 chan->state = BT_CLOSED; in l2cap_sock_teardown_cb()
1608 chan->state = BT_CLOSED; in l2cap_sock_teardown_cb()
1628 static void l2cap_sock_state_change_cb(struct l2cap_chan *chan, int state, in l2cap_sock_state_change_cb() argument
1631 struct sock *sk = chan->data; in l2cap_sock_state_change_cb()
1639 static struct sk_buff *l2cap_sock_alloc_skb_cb(struct l2cap_chan *chan, in l2cap_sock_alloc_skb_cb() argument
1643 struct sock *sk = chan->data; in l2cap_sock_alloc_skb_cb()
1647 l2cap_chan_unlock(chan); in l2cap_sock_alloc_skb_cb()
1649 l2cap_chan_lock(chan); in l2cap_sock_alloc_skb_cb()
1657 if (chan->state != BT_CONNECTED) { in l2cap_sock_alloc_skb_cb()
1664 bt_cb(skb)->l2cap.chan = chan; in l2cap_sock_alloc_skb_cb()
1669 static void l2cap_sock_ready_cb(struct l2cap_chan *chan) in l2cap_sock_ready_cb() argument
1671 struct sock *sk = chan->data; in l2cap_sock_ready_cb()
1689 static void l2cap_sock_defer_cb(struct l2cap_chan *chan) in l2cap_sock_defer_cb() argument
1691 struct sock *parent, *sk = chan->data; in l2cap_sock_defer_cb()
1702 static void l2cap_sock_resume_cb(struct l2cap_chan *chan) in l2cap_sock_resume_cb() argument
1704 struct sock *sk = chan->data; in l2cap_sock_resume_cb()
1709 if (test_and_clear_bit(FLAG_PENDING_SECURITY, &chan->flags)) { in l2cap_sock_resume_cb()
1711 chan->state = BT_CONNECTED; in l2cap_sock_resume_cb()
1718 static void l2cap_sock_set_shutdown_cb(struct l2cap_chan *chan) in l2cap_sock_set_shutdown_cb() argument
1720 struct sock *sk = chan->data; in l2cap_sock_set_shutdown_cb()
1727 static long l2cap_sock_get_sndtimeo_cb(struct l2cap_chan *chan) in l2cap_sock_get_sndtimeo_cb() argument
1729 struct sock *sk = chan->data; in l2cap_sock_get_sndtimeo_cb()
1734 static struct pid *l2cap_sock_get_peer_pid_cb(struct l2cap_chan *chan) in l2cap_sock_get_peer_pid_cb() argument
1736 struct sock *sk = chan->data; in l2cap_sock_get_peer_pid_cb()
1741 static void l2cap_sock_suspend_cb(struct l2cap_chan *chan) in l2cap_sock_suspend_cb() argument
1743 struct sock *sk = chan->data; in l2cap_sock_suspend_cb()
1749 static int l2cap_sock_filter(struct l2cap_chan *chan, struct sk_buff *skb) in l2cap_sock_filter() argument
1751 struct sock *sk = chan->data; in l2cap_sock_filter()
1753 switch (chan->mode) { in l2cap_sock_filter()
1786 if (l2cap_pi(sk)->chan) { in l2cap_sock_destruct()
1787 l2cap_pi(sk)->chan->data = NULL; in l2cap_sock_destruct()
1788 l2cap_chan_put(l2cap_pi(sk)->chan); in l2cap_sock_destruct()
1816 struct l2cap_chan *chan = l2cap_pi(sk)->chan; in l2cap_sock_init() local
1821 struct l2cap_chan *pchan = l2cap_pi(parent)->chan; in l2cap_sock_init()
1826 chan->chan_type = pchan->chan_type; in l2cap_sock_init()
1827 chan->imtu = pchan->imtu; in l2cap_sock_init()
1828 chan->omtu = pchan->omtu; in l2cap_sock_init()
1829 chan->conf_state = pchan->conf_state; in l2cap_sock_init()
1830 chan->mode = pchan->mode; in l2cap_sock_init()
1831 chan->fcs = pchan->fcs; in l2cap_sock_init()
1832 chan->max_tx = pchan->max_tx; in l2cap_sock_init()
1833 chan->tx_win = pchan->tx_win; in l2cap_sock_init()
1834 chan->tx_win_max = pchan->tx_win_max; in l2cap_sock_init()
1835 chan->sec_level = pchan->sec_level; in l2cap_sock_init()
1836 chan->flags = pchan->flags; in l2cap_sock_init()
1837 chan->tx_credits = pchan->tx_credits; in l2cap_sock_init()
1838 chan->rx_credits = pchan->rx_credits; in l2cap_sock_init()
1840 if (chan->chan_type == L2CAP_CHAN_FIXED) { in l2cap_sock_init()
1841 chan->scid = pchan->scid; in l2cap_sock_init()
1842 chan->dcid = pchan->scid; in l2cap_sock_init()
1849 chan->chan_type = L2CAP_CHAN_RAW; in l2cap_sock_init()
1852 chan->chan_type = L2CAP_CHAN_CONN_LESS; in l2cap_sock_init()
1857 chan->chan_type = L2CAP_CHAN_CONN_ORIENTED; in l2cap_sock_init()
1861 chan->imtu = L2CAP_DEFAULT_MTU; in l2cap_sock_init()
1862 chan->omtu = 0; in l2cap_sock_init()
1864 chan->mode = L2CAP_MODE_ERTM; in l2cap_sock_init()
1865 set_bit(CONF_STATE2_DEVICE, &chan->conf_state); in l2cap_sock_init()
1867 chan->mode = L2CAP_MODE_BASIC; in l2cap_sock_init()
1870 l2cap_chan_set_defaults(chan); in l2cap_sock_init()
1874 chan->flush_to = L2CAP_DEFAULT_FLUSH_TO; in l2cap_sock_init()
1876 chan->data = sk; in l2cap_sock_init()
1877 chan->ops = &l2cap_chan_ops; in l2cap_sock_init()
1879 l2cap_publish_rx_avail(chan); in l2cap_sock_init()
1892 struct l2cap_chan *chan; in l2cap_sock_alloc() local
1903 chan = l2cap_chan_create(); in l2cap_sock_alloc()
1904 if (!chan) { in l2cap_sock_alloc()
1911 l2cap_chan_hold(chan); in l2cap_sock_alloc()
1913 l2cap_pi(sk)->chan = chan; in l2cap_sock_alloc()