Lines Matching +full:0 +full:d
58 static int rfcomm_queue_disc(struct rfcomm_dlc *d);
60 static int rfcomm_send_pn(struct rfcomm_session *s, int cr, struct rfcomm_dlc *d);
76 #define __get_dlci(b) ((b & 0xfc) >> 2)
77 #define __get_type(b) ((b & 0xef))
79 #define __test_ea(b) ((b & 0x01))
80 #define __test_cr(b) (!!(b & 0x02))
81 #define __test_pf(b) (!!(b & 0x10))
83 #define __session_dir(s) ((s)->initiator ? 0x00 : 0x01)
85 #define __addr(cr, dlci) (((dlci & 0x3f) << 2) | (cr << 1) | 0x01)
86 #define __ctrl(type, pf) (((type & 0xef) | (pf << 4)))
87 #define __dlci(dir, chn) (((chn & 0x1f) << 1) | dir)
94 #define __mcc_type(cr, type) (((type << 2) | (cr << 1) | 0x01))
95 #define __get_mcc_type(b) ((b & 0xfc) >> 2)
96 #define __get_mcc_len(b) ((b & 0xfe) >> 1)
99 #define __rpn_line_settings(data, stop, parity) ((data & 0x3) | ((stop & 0x1) << 2) | ((parity & 0…
100 #define __get_rpn_data_bits(line) ((line) & 0x3)
101 #define __get_rpn_stop_bits(line) (((line) >> 2) & 0x1)
102 #define __get_rpn_parity(line) (((line) >> 3) & 0x7)
113 /* reversed, 8-bit, poly=0x07 */
115 0x00, 0x91, 0xe3, 0x72, 0x07, 0x96, 0xe4, 0x75,
116 0x0e, 0x9f, 0xed, 0x7c, 0x09, 0x98, 0xea, 0x7b,
117 0x1c, 0x8d, 0xff, 0x6e, 0x1b, 0x8a, 0xf8, 0x69,
118 0x12, 0x83, 0xf1, 0x60, 0x15, 0x84, 0xf6, 0x67,
120 0x38, 0xa9, 0xdb, 0x4a, 0x3f, 0xae, 0xdc, 0x4d,
121 0x36, 0xa7, 0xd5, 0x44, 0x31, 0xa0, 0xd2, 0x43,
122 0x24, 0xb5, 0xc7, 0x56, 0x23, 0xb2, 0xc0, 0x51,
123 0x2a, 0xbb, 0xc9, 0x58, 0x2d, 0xbc, 0xce, 0x5f,
125 0x70, 0xe1, 0x93, 0x02, 0x77, 0xe6, 0x94, 0x05,
126 0x7e, 0xef, 0x9d, 0x0c, 0x79, 0xe8, 0x9a, 0x0b,
127 0x6c, 0xfd, 0x8f, 0x1e, 0x6b, 0xfa, 0x88, 0x19,
128 0x62, 0xf3, 0x81, 0x10, 0x65, 0xf4, 0x86, 0x17,
130 0x48, 0xd9, 0xab, 0x3a, 0x4f, 0xde, 0xac, 0x3d,
131 0x46, 0xd7, 0xa5, 0x34, 0x41, 0xd0, 0xa2, 0x33,
132 0x54, 0xc5, 0xb7, 0x26, 0x53, 0xc2, 0xb0, 0x21,
133 0x5a, 0xcb, 0xb9, 0x28, 0x5d, 0xcc, 0xbe, 0x2f,
135 0xe0, 0x71, 0x03, 0x92, 0xe7, 0x76, 0x04, 0x95,
136 0xee, 0x7f, 0x0d, 0x9c, 0xe9, 0x78, 0x0a, 0x9b,
137 0xfc, 0x6d, 0x1f, 0x8e, 0xfb, 0x6a, 0x18, 0x89,
138 0xf2, 0x63, 0x11, 0x80, 0xf5, 0x64, 0x16, 0x87,
140 0xd8, 0x49, 0x3b, 0xaa, 0xdf, 0x4e, 0x3c, 0xad,
141 0xd6, 0x47, 0x35, 0xa4, 0xd1, 0x40, 0x32, 0xa3,
142 0xc4, 0x55, 0x27, 0xb6, 0xc3, 0x52, 0x20, 0xb1,
143 0xca, 0x5b, 0x29, 0xb8, 0xcd, 0x5c, 0x2e, 0xbf,
145 0x90, 0x01, 0x73, 0xe2, 0x97, 0x06, 0x74, 0xe5,
146 0x9e, 0x0f, 0x7d, 0xec, 0x99, 0x08, 0x7a, 0xeb,
147 0x8c, 0x1d, 0x6f, 0xfe, 0x8b, 0x1a, 0x68, 0xf9,
148 0x82, 0x13, 0x61, 0xf0, 0x85, 0x14, 0x66, 0xf7,
150 0xa8, 0x39, 0x4b, 0xda, 0xaf, 0x3e, 0x4c, 0xdd,
151 0xa6, 0x37, 0x45, 0xd4, 0xa1, 0x30, 0x42, 0xd3,
152 0xb4, 0x25, 0x57, 0xc6, 0xb3, 0x22, 0x50, 0xc1,
153 0xba, 0x2b, 0x59, 0xc8, 0xbd, 0x2c, 0x5e, 0xcf
157 #define __crc(data) (rfcomm_crc_table[rfcomm_crc_table[0xff ^ data[0]] ^ data[1]])
162 return 0xff - __crc(data); in __fcs()
168 return 0xff - rfcomm_crc_table[__crc(data) ^ data[2]]; in __fcs2()
179 return rfcomm_crc_table[f ^ fcs] != 0xcf; in __check_fcs()
185 BT_DBG("%p state %d", sk, sk->sk_state); in rfcomm_l2state_change()
212 static int rfcomm_check_security(struct rfcomm_dlc *d) in rfcomm_check_security() argument
214 struct sock *sk = d->session->sock->sk; in rfcomm_check_security()
219 switch (d->sec_level) { in rfcomm_check_security()
232 return hci_conn_security(conn->hcon, d->sec_level, auth_type, in rfcomm_check_security()
233 d->out); in rfcomm_check_security()
263 struct rfcomm_dlc *d = from_timer(d, t, timer); in rfcomm_dlc_timeout() local
265 BT_DBG("dlc %p state %ld", d, d->state); in rfcomm_dlc_timeout()
267 set_bit(RFCOMM_TIMED_OUT, &d->flags); in rfcomm_dlc_timeout()
268 rfcomm_dlc_put(d); in rfcomm_dlc_timeout()
272 static void rfcomm_dlc_set_timer(struct rfcomm_dlc *d, long timeout) in rfcomm_dlc_set_timer() argument
274 BT_DBG("dlc %p state %ld timeout %ld", d, d->state, timeout); in rfcomm_dlc_set_timer()
276 if (!mod_timer(&d->timer, jiffies + timeout)) in rfcomm_dlc_set_timer()
277 rfcomm_dlc_hold(d); in rfcomm_dlc_set_timer()
280 static void rfcomm_dlc_clear_timer(struct rfcomm_dlc *d) in rfcomm_dlc_clear_timer() argument
282 BT_DBG("dlc %p state %ld", d, d->state); in rfcomm_dlc_clear_timer()
284 if (del_timer(&d->timer)) in rfcomm_dlc_clear_timer()
285 rfcomm_dlc_put(d); in rfcomm_dlc_clear_timer()
288 static void rfcomm_dlc_clear_state(struct rfcomm_dlc *d) in rfcomm_dlc_clear_state() argument
290 BT_DBG("%p", d); in rfcomm_dlc_clear_state()
292 d->state = BT_OPEN; in rfcomm_dlc_clear_state()
293 d->flags = 0; in rfcomm_dlc_clear_state()
294 d->mscex = 0; in rfcomm_dlc_clear_state()
295 d->sec_level = BT_SECURITY_LOW; in rfcomm_dlc_clear_state()
296 d->mtu = RFCOMM_DEFAULT_MTU; in rfcomm_dlc_clear_state()
297 d->v24_sig = RFCOMM_V24_RTC | RFCOMM_V24_RTR | RFCOMM_V24_DV; in rfcomm_dlc_clear_state()
299 d->cfc = RFCOMM_CFC_DISABLED; in rfcomm_dlc_clear_state()
300 d->rx_credits = RFCOMM_DEFAULT_CREDITS; in rfcomm_dlc_clear_state()
305 struct rfcomm_dlc *d = kzalloc(sizeof(*d), prio); in rfcomm_dlc_alloc() local
307 if (!d) in rfcomm_dlc_alloc()
310 timer_setup(&d->timer, rfcomm_dlc_timeout, 0); in rfcomm_dlc_alloc()
312 skb_queue_head_init(&d->tx_queue); in rfcomm_dlc_alloc()
313 mutex_init(&d->lock); in rfcomm_dlc_alloc()
314 refcount_set(&d->refcnt, 1); in rfcomm_dlc_alloc()
316 rfcomm_dlc_clear_state(d); in rfcomm_dlc_alloc()
318 BT_DBG("%p", d); in rfcomm_dlc_alloc()
320 return d; in rfcomm_dlc_alloc()
323 void rfcomm_dlc_free(struct rfcomm_dlc *d) in rfcomm_dlc_free() argument
325 BT_DBG("%p", d); in rfcomm_dlc_free()
327 skb_queue_purge(&d->tx_queue); in rfcomm_dlc_free()
328 kfree(d); in rfcomm_dlc_free()
331 static void rfcomm_dlc_link(struct rfcomm_session *s, struct rfcomm_dlc *d) in rfcomm_dlc_link() argument
333 BT_DBG("dlc %p session %p", d, s); in rfcomm_dlc_link()
336 rfcomm_dlc_hold(d); in rfcomm_dlc_link()
337 list_add(&d->list, &s->dlcs); in rfcomm_dlc_link()
338 d->session = s; in rfcomm_dlc_link()
341 static void rfcomm_dlc_unlink(struct rfcomm_dlc *d) in rfcomm_dlc_unlink() argument
343 struct rfcomm_session *s = d->session; in rfcomm_dlc_unlink()
345 BT_DBG("dlc %p refcnt %d session %p", d, refcount_read(&d->refcnt), s); in rfcomm_dlc_unlink()
347 list_del(&d->list); in rfcomm_dlc_unlink()
348 d->session = NULL; in rfcomm_dlc_unlink()
349 rfcomm_dlc_put(d); in rfcomm_dlc_unlink()
357 struct rfcomm_dlc *d; in rfcomm_dlc_get() local
359 list_for_each_entry(d, &s->dlcs, list) in rfcomm_dlc_get()
360 if (d->dlci == dlci) in rfcomm_dlc_get()
361 return d; in rfcomm_dlc_get()
371 static int __rfcomm_dlc_open(struct rfcomm_dlc *d, bdaddr_t *src, bdaddr_t *dst, u8 channel) in __rfcomm_dlc_open() argument
374 int err = 0; in __rfcomm_dlc_open()
377 BT_DBG("dlc %p state %ld %pMR -> %pMR channel %d", in __rfcomm_dlc_open()
378 d, d->state, src, dst, channel); in __rfcomm_dlc_open()
383 if (d->state != BT_OPEN && d->state != BT_CLOSED) in __rfcomm_dlc_open()
384 return 0; in __rfcomm_dlc_open()
388 s = rfcomm_session_create(src, dst, d->sec_level, &err); in __rfcomm_dlc_open()
399 rfcomm_dlc_clear_state(d); in __rfcomm_dlc_open()
401 d->dlci = dlci; in __rfcomm_dlc_open()
402 d->addr = __addr(s->initiator, dlci); in __rfcomm_dlc_open()
403 d->priority = 7; in __rfcomm_dlc_open()
405 d->state = BT_CONFIG; in __rfcomm_dlc_open()
406 rfcomm_dlc_link(s, d); in __rfcomm_dlc_open()
408 d->out = 1; in __rfcomm_dlc_open()
410 d->mtu = s->mtu; in __rfcomm_dlc_open()
411 d->cfc = (s->cfc == RFCOMM_CFC_UNKNOWN) ? 0 : s->cfc; in __rfcomm_dlc_open()
414 if (rfcomm_check_security(d)) in __rfcomm_dlc_open()
415 rfcomm_send_pn(s, 1, d); in __rfcomm_dlc_open()
417 set_bit(RFCOMM_AUTH_PENDING, &d->flags); in __rfcomm_dlc_open()
420 rfcomm_dlc_set_timer(d, RFCOMM_CONN_TIMEOUT); in __rfcomm_dlc_open()
422 return 0; in __rfcomm_dlc_open()
425 int rfcomm_dlc_open(struct rfcomm_dlc *d, bdaddr_t *src, bdaddr_t *dst, u8 channel) in rfcomm_dlc_open() argument
431 r = __rfcomm_dlc_open(d, src, dst, channel); in rfcomm_dlc_open()
437 static void __rfcomm_dlc_disconn(struct rfcomm_dlc *d) in __rfcomm_dlc_disconn() argument
439 struct rfcomm_session *s = d->session; in __rfcomm_dlc_disconn()
441 d->state = BT_DISCONN; in __rfcomm_dlc_disconn()
442 if (skb_queue_empty(&d->tx_queue)) { in __rfcomm_dlc_disconn()
443 rfcomm_send_disc(s, d->dlci); in __rfcomm_dlc_disconn()
444 rfcomm_dlc_set_timer(d, RFCOMM_DISC_TIMEOUT); in __rfcomm_dlc_disconn()
446 rfcomm_queue_disc(d); in __rfcomm_dlc_disconn()
447 rfcomm_dlc_set_timer(d, RFCOMM_DISC_TIMEOUT * 2); in __rfcomm_dlc_disconn()
451 static int __rfcomm_dlc_close(struct rfcomm_dlc *d, int err) in __rfcomm_dlc_close() argument
453 struct rfcomm_session *s = d->session; in __rfcomm_dlc_close()
455 return 0; in __rfcomm_dlc_close()
457 BT_DBG("dlc %p state %ld dlci %d err %d session %p", in __rfcomm_dlc_close()
458 d, d->state, d->dlci, err, s); in __rfcomm_dlc_close()
460 switch (d->state) { in __rfcomm_dlc_close()
465 if (test_and_clear_bit(RFCOMM_DEFER_SETUP, &d->flags)) { in __rfcomm_dlc_close()
466 set_bit(RFCOMM_AUTH_REJECT, &d->flags); in __rfcomm_dlc_close()
468 return 0; in __rfcomm_dlc_close()
472 switch (d->state) { in __rfcomm_dlc_close()
475 __rfcomm_dlc_disconn(d); in __rfcomm_dlc_close()
480 __rfcomm_dlc_disconn(d); in __rfcomm_dlc_close()
489 rfcomm_dlc_clear_timer(d); in __rfcomm_dlc_close()
491 rfcomm_dlc_lock(d); in __rfcomm_dlc_close()
492 d->state = BT_CLOSED; in __rfcomm_dlc_close()
493 d->state_change(d, err); in __rfcomm_dlc_close()
494 rfcomm_dlc_unlock(d); in __rfcomm_dlc_close()
496 skb_queue_purge(&d->tx_queue); in __rfcomm_dlc_close()
497 rfcomm_dlc_unlink(d); in __rfcomm_dlc_close()
500 return 0; in __rfcomm_dlc_close()
503 int rfcomm_dlc_close(struct rfcomm_dlc *d, int err) in rfcomm_dlc_close() argument
505 int r = 0; in rfcomm_dlc_close()
509 BT_DBG("dlc %p state %ld dlci %d err %d", d, d->state, d->dlci, err); in rfcomm_dlc_close()
513 s = d->session; in rfcomm_dlc_close()
523 if (d_list == d) { in rfcomm_dlc_close()
524 r = __rfcomm_dlc_close(d, err); in rfcomm_dlc_close()
556 static int rfcomm_dlc_send_frag(struct rfcomm_dlc *d, struct sk_buff *frag) in rfcomm_dlc_send_frag() argument
560 BT_DBG("dlc %p mtu %d len %d", d, d->mtu, len); in rfcomm_dlc_send_frag()
562 if (len > d->mtu) in rfcomm_dlc_send_frag()
565 rfcomm_make_uih(frag, d->addr); in rfcomm_dlc_send_frag()
566 __skb_queue_tail(&d->tx_queue, frag); in rfcomm_dlc_send_frag()
571 int rfcomm_dlc_send(struct rfcomm_dlc *d, struct sk_buff *skb) in rfcomm_dlc_send() argument
577 if (d->state != BT_CONNECTED) in rfcomm_dlc_send()
584 spin_lock_irqsave(&d->tx_queue.lock, flags); in rfcomm_dlc_send()
586 len = rfcomm_dlc_send_frag(d, skb); in rfcomm_dlc_send()
587 if (len < 0 || !frag) in rfcomm_dlc_send()
595 ret = rfcomm_dlc_send_frag(d, frag); in rfcomm_dlc_send()
596 if (ret < 0) { in rfcomm_dlc_send()
605 spin_unlock_irqrestore(&d->tx_queue.lock, flags); in rfcomm_dlc_send()
607 if (len > 0 && !test_bit(RFCOMM_TX_THROTTLED, &d->flags)) in rfcomm_dlc_send()
612 void rfcomm_dlc_send_noerror(struct rfcomm_dlc *d, struct sk_buff *skb) in rfcomm_dlc_send_noerror() argument
616 BT_DBG("dlc %p mtu %d len %d", d, d->mtu, len); in rfcomm_dlc_send_noerror()
618 rfcomm_make_uih(skb, d->addr); in rfcomm_dlc_send_noerror()
619 skb_queue_tail(&d->tx_queue, skb); in rfcomm_dlc_send_noerror()
621 if (d->state == BT_CONNECTED && in rfcomm_dlc_send_noerror()
622 !test_bit(RFCOMM_TX_THROTTLED, &d->flags)) in rfcomm_dlc_send_noerror()
626 void __rfcomm_dlc_throttle(struct rfcomm_dlc *d) in __rfcomm_dlc_throttle() argument
628 BT_DBG("dlc %p state %ld", d, d->state); in __rfcomm_dlc_throttle()
630 if (!d->cfc) { in __rfcomm_dlc_throttle()
631 d->v24_sig |= RFCOMM_V24_FC; in __rfcomm_dlc_throttle()
632 set_bit(RFCOMM_MSC_PENDING, &d->flags); in __rfcomm_dlc_throttle()
637 void __rfcomm_dlc_unthrottle(struct rfcomm_dlc *d) in __rfcomm_dlc_unthrottle() argument
639 BT_DBG("dlc %p state %ld", d, d->state); in __rfcomm_dlc_unthrottle()
641 if (!d->cfc) { in __rfcomm_dlc_unthrottle()
642 d->v24_sig &= ~RFCOMM_V24_FC; in __rfcomm_dlc_unthrottle()
643 set_bit(RFCOMM_MSC_PENDING, &d->flags); in __rfcomm_dlc_unthrottle()
653 int rfcomm_dlc_set_modem_status(struct rfcomm_dlc *d, u8 v24_sig) in rfcomm_dlc_set_modem_status() argument
655 BT_DBG("dlc %p state %ld v24_sig 0x%x", in rfcomm_dlc_set_modem_status()
656 d, d->state, v24_sig); in rfcomm_dlc_set_modem_status()
658 if (test_bit(RFCOMM_RX_THROTTLED, &d->flags)) in rfcomm_dlc_set_modem_status()
663 d->v24_sig = v24_sig; in rfcomm_dlc_set_modem_status()
665 if (!test_and_set_bit(RFCOMM_MSC_PENDING, &d->flags)) in rfcomm_dlc_set_modem_status()
668 return 0; in rfcomm_dlc_set_modem_status()
671 int rfcomm_dlc_get_modem_status(struct rfcomm_dlc *d, u8 *v24_sig) in rfcomm_dlc_get_modem_status() argument
673 BT_DBG("dlc %p state %ld v24_sig 0x%x", in rfcomm_dlc_get_modem_status()
674 d, d->state, d->v24_sig); in rfcomm_dlc_get_modem_status()
676 *v24_sig = d->v24_sig; in rfcomm_dlc_get_modem_status()
677 return 0; in rfcomm_dlc_get_modem_status()
690 timer_setup(&s->timer, rfcomm_session_timeout, 0); in rfcomm_session_add()
747 struct rfcomm_dlc *d, *n; in rfcomm_session_close() local
751 BT_DBG("session %p state %ld err %d", s, s->state, err); in rfcomm_session_close()
754 list_for_each_entry_safe(d, n, &s->dlcs, list) { in rfcomm_session_close()
755 d->state = BT_CLOSED; in rfcomm_session_close()
756 __rfcomm_dlc_close(d, err); in rfcomm_session_close()
776 if (*err < 0) in rfcomm_session_create()
781 addr.l2_psm = 0; in rfcomm_session_create()
782 addr.l2_cid = 0; in rfcomm_session_create()
785 if (*err < 0) in rfcomm_session_create()
791 /* Set MTU to 0 so L2CAP can auto select the MTU */ in rfcomm_session_create()
792 l2cap_pi(sk)->chan->imtu = 0; in rfcomm_session_create()
809 addr.l2_cid = 0; in rfcomm_session_create()
812 if (*err == 0 || *err == -EINPROGRESS) in rfcomm_session_create()
837 BT_DBG("session %p len %d", s, len); in rfcomm_send_frame()
839 memset(&msg, 0, sizeof(msg)); in rfcomm_send_frame()
855 BT_DBG("%p dlci %d", s, dlci); in rfcomm_send_sabm()
859 cmd.len = __len8(0); in rfcomm_send_sabm()
869 BT_DBG("%p dlci %d", s, dlci); in rfcomm_send_ua()
873 cmd.len = __len8(0); in rfcomm_send_ua()
883 BT_DBG("%p dlci %d", s, dlci); in rfcomm_send_disc()
887 cmd.len = __len8(0); in rfcomm_send_disc()
893 static int rfcomm_queue_disc(struct rfcomm_dlc *d) in rfcomm_queue_disc() argument
898 BT_DBG("dlc %p dlci %d", d, d->dlci); in rfcomm_queue_disc()
905 cmd->addr = d->addr; in rfcomm_queue_disc()
907 cmd->len = __len8(0); in rfcomm_queue_disc()
910 skb_queue_tail(&d->tx_queue, skb); in rfcomm_queue_disc()
912 return 0; in rfcomm_queue_disc()
919 BT_DBG("%p dlci %d", s, dlci); in rfcomm_send_dm()
923 cmd.len = __len8(0); in rfcomm_send_dm()
935 BT_DBG("%p cr %d type %d", s, cr, type); in rfcomm_send_nsc()
938 hdr->addr = __addr(s->initiator, 0); in rfcomm_send_nsc()
939 hdr->ctrl = __ctrl(RFCOMM_UIH, 0); in rfcomm_send_nsc()
943 mcc->type = __mcc_type(0, RFCOMM_NSC); in rfcomm_send_nsc()
954 static int rfcomm_send_pn(struct rfcomm_session *s, int cr, struct rfcomm_dlc *d) in rfcomm_send_pn() argument
961 BT_DBG("%p cr %d dlci %d mtu %d", s, cr, d->dlci, d->mtu); in rfcomm_send_pn()
964 hdr->addr = __addr(s->initiator, 0); in rfcomm_send_pn()
965 hdr->ctrl = __ctrl(RFCOMM_UIH, 0); in rfcomm_send_pn()
973 pn->dlci = d->dlci; in rfcomm_send_pn()
974 pn->priority = d->priority; in rfcomm_send_pn()
975 pn->ack_timer = 0; in rfcomm_send_pn()
976 pn->max_retrans = 0; in rfcomm_send_pn()
979 pn->flow_ctrl = cr ? 0xf0 : 0xe0; in rfcomm_send_pn()
982 pn->flow_ctrl = 0; in rfcomm_send_pn()
983 pn->credits = 0; in rfcomm_send_pn()
986 if (cr && channel_mtu >= 0) in rfcomm_send_pn()
989 pn->mtu = cpu_to_le16(d->mtu); in rfcomm_send_pn()
1006 BT_DBG("%p cr %d dlci %d bit_r 0x%x data_b 0x%x stop_b 0x%x parity 0x%x" in rfcomm_send_rpn()
1007 " flwc_s 0x%x xon_c 0x%x xoff_c 0x%x p_mask 0x%x", in rfcomm_send_rpn()
1012 hdr->addr = __addr(s->initiator, 0); in rfcomm_send_rpn()
1013 hdr->ctrl = __ctrl(RFCOMM_UIH, 0); in rfcomm_send_rpn()
1041 BT_DBG("%p cr %d status 0x%x", s, cr, status); in rfcomm_send_rls()
1044 hdr->addr = __addr(s->initiator, 0); in rfcomm_send_rls()
1045 hdr->ctrl = __ctrl(RFCOMM_UIH, 0); in rfcomm_send_rls()
1068 BT_DBG("%p cr %d v24 0x%x", s, cr, v24_sig); in rfcomm_send_msc()
1071 hdr->addr = __addr(s->initiator, 0); in rfcomm_send_msc()
1072 hdr->ctrl = __ctrl(RFCOMM_UIH, 0); in rfcomm_send_msc()
1081 msc->v24_sig = v24_sig | 0x01; in rfcomm_send_msc()
1094 BT_DBG("%p cr %d", s, cr); in rfcomm_send_fcoff()
1097 hdr->addr = __addr(s->initiator, 0); in rfcomm_send_fcoff()
1098 hdr->ctrl = __ctrl(RFCOMM_UIH, 0); in rfcomm_send_fcoff()
1103 mcc->len = __len8(0); in rfcomm_send_fcoff()
1116 BT_DBG("%p cr %d", s, cr); in rfcomm_send_fcon()
1119 hdr->addr = __addr(s->initiator, 0); in rfcomm_send_fcon()
1120 hdr->ctrl = __ctrl(RFCOMM_UIH, 0); in rfcomm_send_fcon()
1125 mcc->len = __len8(0); in rfcomm_send_fcon()
1142 BT_DBG("%p cr %d", s, cr); in rfcomm_send_test()
1144 hdr[0] = __addr(s->initiator, 0); in rfcomm_send_test()
1145 hdr[1] = __ctrl(RFCOMM_UIH, 0); in rfcomm_send_test()
1146 hdr[2] = 0x01 | ((len + 2) << 1); in rfcomm_send_test()
1147 hdr[3] = 0x01 | ((cr & 0x01) << 1) | (RFCOMM_TEST << 2); in rfcomm_send_test()
1148 hdr[4] = 0x01 | (len << 1); in rfcomm_send_test()
1150 crc[0] = __fcs(hdr); in rfcomm_send_test()
1152 iv[0].iov_base = hdr; in rfcomm_send_test()
1153 iv[0].iov_len = 5; in rfcomm_send_test()
1159 memset(&msg, 0, sizeof(msg)); in rfcomm_send_test()
1169 BT_DBG("%p addr %d credits %d", s, addr, credits); in rfcomm_send_credits()
1174 hdr->len = __len8(0); in rfcomm_send_credits()
1197 hdr->ctrl = __ctrl(RFCOMM_UIH, 0); in rfcomm_make_uih()
1206 BT_DBG("session %p state %ld dlci %d", s, s->state, dlci); in rfcomm_recv_ua()
1210 struct rfcomm_dlc *d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_ua() local
1211 if (!d) { in rfcomm_recv_ua()
1216 switch (d->state) { in rfcomm_recv_ua()
1218 rfcomm_dlc_clear_timer(d); in rfcomm_recv_ua()
1220 rfcomm_dlc_lock(d); in rfcomm_recv_ua()
1221 d->state = BT_CONNECTED; in rfcomm_recv_ua()
1222 d->state_change(d, 0); in rfcomm_recv_ua()
1223 rfcomm_dlc_unlock(d); in rfcomm_recv_ua()
1225 rfcomm_send_msc(s, 1, dlci, d->v24_sig); in rfcomm_recv_ua()
1229 d->state = BT_CLOSED; in rfcomm_recv_ua()
1230 __rfcomm_dlc_close(d, 0); in rfcomm_recv_ua()
1234 rfcomm_send_disc(s, 0); in rfcomm_recv_ua()
1258 int err = 0; in rfcomm_recv_dm()
1260 BT_DBG("session %p state %ld dlci %d", s, s->state, dlci); in rfcomm_recv_dm()
1264 struct rfcomm_dlc *d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_dm() local
1265 if (d) { in rfcomm_recv_dm()
1266 if (d->state == BT_CONNECT || d->state == BT_CONFIG) in rfcomm_recv_dm()
1271 d->state = BT_CLOSED; in rfcomm_recv_dm()
1272 __rfcomm_dlc_close(d, err); in rfcomm_recv_dm()
1288 int err = 0; in rfcomm_recv_disc()
1290 BT_DBG("session %p state %ld dlci %d", s, s->state, dlci); in rfcomm_recv_disc()
1293 struct rfcomm_dlc *d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_disc() local
1294 if (d) { in rfcomm_recv_disc()
1297 if (d->state == BT_CONNECT || d->state == BT_CONFIG) in rfcomm_recv_disc()
1302 d->state = BT_CLOSED; in rfcomm_recv_disc()
1303 __rfcomm_dlc_close(d, err); in rfcomm_recv_disc()
1308 rfcomm_send_ua(s, 0); in rfcomm_recv_disc()
1320 void rfcomm_dlc_accept(struct rfcomm_dlc *d) in rfcomm_dlc_accept() argument
1322 struct sock *sk = d->session->sock->sk; in rfcomm_dlc_accept()
1325 BT_DBG("dlc %p", d); in rfcomm_dlc_accept()
1327 rfcomm_send_ua(d->session, d->dlci); in rfcomm_dlc_accept()
1329 rfcomm_dlc_clear_timer(d); in rfcomm_dlc_accept()
1331 rfcomm_dlc_lock(d); in rfcomm_dlc_accept()
1332 d->state = BT_CONNECTED; in rfcomm_dlc_accept()
1333 d->state_change(d, 0); in rfcomm_dlc_accept()
1334 rfcomm_dlc_unlock(d); in rfcomm_dlc_accept()
1336 if (d->role_switch) in rfcomm_dlc_accept()
1337 hci_conn_switch_role(conn->hcon, 0x00); in rfcomm_dlc_accept()
1339 rfcomm_send_msc(d->session, 1, d->dlci, d->v24_sig); in rfcomm_dlc_accept()
1342 static void rfcomm_check_accept(struct rfcomm_dlc *d) in rfcomm_check_accept() argument
1344 if (rfcomm_check_security(d)) { in rfcomm_check_accept()
1345 if (d->defer_setup) { in rfcomm_check_accept()
1346 set_bit(RFCOMM_DEFER_SETUP, &d->flags); in rfcomm_check_accept()
1347 rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); in rfcomm_check_accept()
1349 rfcomm_dlc_lock(d); in rfcomm_check_accept()
1350 d->state = BT_CONNECT2; in rfcomm_check_accept()
1351 d->state_change(d, 0); in rfcomm_check_accept()
1352 rfcomm_dlc_unlock(d); in rfcomm_check_accept()
1354 rfcomm_dlc_accept(d); in rfcomm_check_accept()
1356 set_bit(RFCOMM_AUTH_PENDING, &d->flags); in rfcomm_check_accept()
1357 rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); in rfcomm_check_accept()
1363 struct rfcomm_dlc *d; in rfcomm_recv_sabm() local
1366 BT_DBG("session %p state %ld dlci %d", s, s->state, dlci); in rfcomm_recv_sabm()
1369 rfcomm_send_ua(s, 0); in rfcomm_recv_sabm()
1375 return 0; in rfcomm_recv_sabm()
1379 d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_sabm()
1380 if (d) { in rfcomm_recv_sabm()
1381 if (d->state == BT_OPEN) { in rfcomm_recv_sabm()
1383 rfcomm_check_accept(d); in rfcomm_recv_sabm()
1385 return 0; in rfcomm_recv_sabm()
1390 if (rfcomm_connect_ind(s, channel, &d)) { in rfcomm_recv_sabm()
1391 d->dlci = dlci; in rfcomm_recv_sabm()
1392 d->addr = __addr(s->initiator, dlci); in rfcomm_recv_sabm()
1393 rfcomm_dlc_link(s, d); in rfcomm_recv_sabm()
1395 rfcomm_check_accept(d); in rfcomm_recv_sabm()
1400 return 0; in rfcomm_recv_sabm()
1403 static int rfcomm_apply_pn(struct rfcomm_dlc *d, int cr, struct rfcomm_pn *pn) in rfcomm_apply_pn() argument
1405 struct rfcomm_session *s = d->session; in rfcomm_apply_pn()
1407 BT_DBG("dlc %p state %ld dlci %d mtu %d fc 0x%x credits %d", in rfcomm_apply_pn()
1408 d, d->state, d->dlci, pn->mtu, pn->flow_ctrl, pn->credits); in rfcomm_apply_pn()
1410 if ((pn->flow_ctrl == 0xf0 && s->cfc != RFCOMM_CFC_DISABLED) || in rfcomm_apply_pn()
1411 pn->flow_ctrl == 0xe0) { in rfcomm_apply_pn()
1412 d->cfc = RFCOMM_CFC_ENABLED; in rfcomm_apply_pn()
1413 d->tx_credits = pn->credits; in rfcomm_apply_pn()
1415 d->cfc = RFCOMM_CFC_DISABLED; in rfcomm_apply_pn()
1416 set_bit(RFCOMM_TX_THROTTLED, &d->flags); in rfcomm_apply_pn()
1420 s->cfc = d->cfc; in rfcomm_apply_pn()
1422 d->priority = pn->priority; in rfcomm_apply_pn()
1424 d->mtu = __le16_to_cpu(pn->mtu); in rfcomm_apply_pn()
1426 if (cr && d->mtu > s->mtu) in rfcomm_apply_pn()
1427 d->mtu = s->mtu; in rfcomm_apply_pn()
1429 return 0; in rfcomm_apply_pn()
1435 struct rfcomm_dlc *d; in rfcomm_recv_pn() local
1438 BT_DBG("session %p state %ld dlci %d", s, s->state, dlci); in rfcomm_recv_pn()
1441 return 0; in rfcomm_recv_pn()
1443 d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_pn()
1444 if (d) { in rfcomm_recv_pn()
1447 rfcomm_apply_pn(d, cr, pn); in rfcomm_recv_pn()
1448 rfcomm_send_pn(s, 0, d); in rfcomm_recv_pn()
1451 switch (d->state) { in rfcomm_recv_pn()
1453 rfcomm_apply_pn(d, cr, pn); in rfcomm_recv_pn()
1455 d->state = BT_CONNECT; in rfcomm_recv_pn()
1456 rfcomm_send_sabm(s, d->dlci); in rfcomm_recv_pn()
1464 return 0; in rfcomm_recv_pn()
1468 if (rfcomm_connect_ind(s, channel, &d)) { in rfcomm_recv_pn()
1469 d->dlci = dlci; in rfcomm_recv_pn()
1470 d->addr = __addr(s->initiator, dlci); in rfcomm_recv_pn()
1471 rfcomm_dlc_link(s, d); in rfcomm_recv_pn()
1473 rfcomm_apply_pn(d, cr, pn); in rfcomm_recv_pn()
1475 d->state = BT_OPEN; in rfcomm_recv_pn()
1476 rfcomm_send_pn(s, 0, d); in rfcomm_recv_pn()
1481 return 0; in rfcomm_recv_pn()
1489 u8 bit_rate = 0; in rfcomm_recv_rpn()
1490 u8 data_bits = 0; in rfcomm_recv_rpn()
1491 u8 stop_bits = 0; in rfcomm_recv_rpn()
1492 u8 parity = 0; in rfcomm_recv_rpn()
1493 u8 flow_ctrl = 0; in rfcomm_recv_rpn()
1494 u8 xon_char = 0; in rfcomm_recv_rpn()
1495 u8 xoff_char = 0; in rfcomm_recv_rpn()
1498 BT_DBG("dlci %d cr %d len 0x%x bitr 0x%x line 0x%x flow 0x%x xonc 0x%x xoffc 0x%x pm 0x%x", in rfcomm_recv_rpn()
1503 return 0; in rfcomm_recv_rpn()
1523 BT_DBG("RPN bit rate mismatch 0x%x", bit_rate); in rfcomm_recv_rpn()
1532 BT_DBG("RPN data bits mismatch 0x%x", data_bits); in rfcomm_recv_rpn()
1541 BT_DBG("RPN stop bits mismatch 0x%x", stop_bits); in rfcomm_recv_rpn()
1550 BT_DBG("RPN parity mismatch 0x%x", parity); in rfcomm_recv_rpn()
1559 BT_DBG("RPN flow ctrl mismatch 0x%x", flow_ctrl); in rfcomm_recv_rpn()
1568 BT_DBG("RPN XON char mismatch 0x%x", xon_char); in rfcomm_recv_rpn()
1577 BT_DBG("RPN XOFF char mismatch 0x%x", xoff_char); in rfcomm_recv_rpn()
1584 rfcomm_send_rpn(s, 0, dlci, bit_rate, data_bits, stop_bits, in rfcomm_recv_rpn()
1587 return 0; in rfcomm_recv_rpn()
1595 BT_DBG("dlci %d cr %d status 0x%x", dlci, cr, rls->status); in rfcomm_recv_rls()
1598 return 0; in rfcomm_recv_rls()
1604 rfcomm_send_rls(s, 0, dlci, rls->status); in rfcomm_recv_rls()
1606 return 0; in rfcomm_recv_rls()
1612 struct rfcomm_dlc *d; in rfcomm_recv_msc() local
1615 BT_DBG("dlci %d cr %d v24 0x%x", dlci, cr, msc->v24_sig); in rfcomm_recv_msc()
1617 d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_msc()
1618 if (!d) in rfcomm_recv_msc()
1619 return 0; in rfcomm_recv_msc()
1622 if (msc->v24_sig & RFCOMM_V24_FC && !d->cfc) in rfcomm_recv_msc()
1623 set_bit(RFCOMM_TX_THROTTLED, &d->flags); in rfcomm_recv_msc()
1625 clear_bit(RFCOMM_TX_THROTTLED, &d->flags); in rfcomm_recv_msc()
1627 rfcomm_dlc_lock(d); in rfcomm_recv_msc()
1629 d->remote_v24_sig = msc->v24_sig; in rfcomm_recv_msc()
1631 if (d->modem_status) in rfcomm_recv_msc()
1632 d->modem_status(d, msc->v24_sig); in rfcomm_recv_msc()
1634 rfcomm_dlc_unlock(d); in rfcomm_recv_msc()
1636 rfcomm_send_msc(s, 0, dlci, msc->v24_sig); in rfcomm_recv_msc()
1638 d->mscex |= RFCOMM_MSCEX_RX; in rfcomm_recv_msc()
1640 d->mscex |= RFCOMM_MSCEX_TX; in rfcomm_recv_msc()
1642 return 0; in rfcomm_recv_msc()
1654 BT_DBG("%p type 0x%x cr %d", s, type, cr); in rfcomm_recv_mcc()
1678 rfcomm_send_fcoff(s, 0); in rfcomm_recv_mcc()
1685 rfcomm_send_fcon(s, 0); in rfcomm_recv_mcc()
1691 rfcomm_send_test(s, 0, skb->data, skb->len); in rfcomm_recv_mcc()
1698 BT_ERR("Unknown control type 0x%02x", type); in rfcomm_recv_mcc()
1702 return 0; in rfcomm_recv_mcc()
1707 struct rfcomm_dlc *d; in rfcomm_recv_data() local
1709 BT_DBG("session %p state %ld dlci %d pf %d", s, s->state, dlci, pf); in rfcomm_recv_data()
1711 d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_data()
1712 if (!d) { in rfcomm_recv_data()
1717 if (pf && d->cfc) { in rfcomm_recv_data()
1720 d->tx_credits += credits; in rfcomm_recv_data()
1721 if (d->tx_credits) in rfcomm_recv_data()
1722 clear_bit(RFCOMM_TX_THROTTLED, &d->flags); in rfcomm_recv_data()
1725 if (skb->len && d->state == BT_CONNECTED) { in rfcomm_recv_data()
1726 rfcomm_dlc_lock(d); in rfcomm_recv_data()
1727 d->rx_credits--; in rfcomm_recv_data()
1728 d->data_ready(d, skb); in rfcomm_recv_data()
1729 rfcomm_dlc_unlock(d); in rfcomm_recv_data()
1730 return 0; in rfcomm_recv_data()
1735 return 0; in rfcomm_recv_data()
1797 BT_ERR("Unknown packet type 0x%02x", type); in rfcomm_recv_frame()
1808 struct rfcomm_dlc *d, *n; in rfcomm_process_connect() local
1812 list_for_each_entry_safe(d, n, &s->dlcs, list) { in rfcomm_process_connect()
1813 if (d->state == BT_CONFIG) { in rfcomm_process_connect()
1814 d->mtu = s->mtu; in rfcomm_process_connect()
1815 if (rfcomm_check_security(d)) { in rfcomm_process_connect()
1816 rfcomm_send_pn(s, 1, d); in rfcomm_process_connect()
1818 set_bit(RFCOMM_AUTH_PENDING, &d->flags); in rfcomm_process_connect()
1819 rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); in rfcomm_process_connect()
1828 static int rfcomm_process_tx(struct rfcomm_dlc *d) in rfcomm_process_tx() argument
1833 BT_DBG("dlc %p state %ld cfc %d rx_credits %d tx_credits %d", in rfcomm_process_tx()
1834 d, d->state, d->cfc, d->rx_credits, d->tx_credits); in rfcomm_process_tx()
1837 if (test_and_clear_bit(RFCOMM_MSC_PENDING, &d->flags)) in rfcomm_process_tx()
1838 rfcomm_send_msc(d->session, 1, d->dlci, d->v24_sig); in rfcomm_process_tx()
1840 if (d->cfc) { in rfcomm_process_tx()
1843 if (!test_bit(RFCOMM_RX_THROTTLED, &d->flags) && in rfcomm_process_tx()
1844 d->rx_credits <= (d->cfc >> 2)) { in rfcomm_process_tx()
1845 rfcomm_send_credits(d->session, d->addr, d->cfc - d->rx_credits); in rfcomm_process_tx()
1846 d->rx_credits = d->cfc; in rfcomm_process_tx()
1851 d->tx_credits = 5; in rfcomm_process_tx()
1854 if (test_bit(RFCOMM_TX_THROTTLED, &d->flags)) in rfcomm_process_tx()
1855 return skb_queue_len(&d->tx_queue); in rfcomm_process_tx()
1857 while (d->tx_credits && (skb = skb_dequeue(&d->tx_queue))) { in rfcomm_process_tx()
1858 err = rfcomm_send_frame(d->session, skb->data, skb->len); in rfcomm_process_tx()
1859 if (err < 0) { in rfcomm_process_tx()
1860 skb_queue_head(&d->tx_queue, skb); in rfcomm_process_tx()
1864 d->tx_credits--; in rfcomm_process_tx()
1867 if (d->cfc && !d->tx_credits) { in rfcomm_process_tx()
1870 set_bit(RFCOMM_TX_THROTTLED, &d->flags); in rfcomm_process_tx()
1873 return skb_queue_len(&d->tx_queue); in rfcomm_process_tx()
1878 struct rfcomm_dlc *d, *n; in rfcomm_process_dlcs() local
1882 list_for_each_entry_safe(d, n, &s->dlcs, list) { in rfcomm_process_dlcs()
1883 if (test_bit(RFCOMM_TIMED_OUT, &d->flags)) { in rfcomm_process_dlcs()
1884 __rfcomm_dlc_close(d, ETIMEDOUT); in rfcomm_process_dlcs()
1888 if (test_bit(RFCOMM_ENC_DROP, &d->flags)) { in rfcomm_process_dlcs()
1889 __rfcomm_dlc_close(d, ECONNREFUSED); in rfcomm_process_dlcs()
1893 if (test_and_clear_bit(RFCOMM_AUTH_ACCEPT, &d->flags)) { in rfcomm_process_dlcs()
1894 rfcomm_dlc_clear_timer(d); in rfcomm_process_dlcs()
1895 if (d->out) { in rfcomm_process_dlcs()
1896 rfcomm_send_pn(s, 1, d); in rfcomm_process_dlcs()
1897 rfcomm_dlc_set_timer(d, RFCOMM_CONN_TIMEOUT); in rfcomm_process_dlcs()
1899 if (d->defer_setup) { in rfcomm_process_dlcs()
1900 set_bit(RFCOMM_DEFER_SETUP, &d->flags); in rfcomm_process_dlcs()
1901 rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); in rfcomm_process_dlcs()
1903 rfcomm_dlc_lock(d); in rfcomm_process_dlcs()
1904 d->state = BT_CONNECT2; in rfcomm_process_dlcs()
1905 d->state_change(d, 0); in rfcomm_process_dlcs()
1906 rfcomm_dlc_unlock(d); in rfcomm_process_dlcs()
1908 rfcomm_dlc_accept(d); in rfcomm_process_dlcs()
1911 } else if (test_and_clear_bit(RFCOMM_AUTH_REJECT, &d->flags)) { in rfcomm_process_dlcs()
1912 rfcomm_dlc_clear_timer(d); in rfcomm_process_dlcs()
1913 if (!d->out) in rfcomm_process_dlcs()
1914 rfcomm_send_dm(s, d->dlci); in rfcomm_process_dlcs()
1916 d->state = BT_CLOSED; in rfcomm_process_dlcs()
1917 __rfcomm_dlc_close(d, ECONNREFUSED); in rfcomm_process_dlcs()
1921 if (test_bit(RFCOMM_SEC_PENDING, &d->flags)) in rfcomm_process_dlcs()
1927 if ((d->state == BT_CONNECTED || d->state == BT_DISCONN) && in rfcomm_process_dlcs()
1928 d->mscex == RFCOMM_MSCEX_OK) in rfcomm_process_dlcs()
1929 rfcomm_process_tx(d); in rfcomm_process_dlcs()
1939 BT_DBG("session %p state %ld qlen %d", s, s->state, skb_queue_len(&sk->sk_receive_queue)); in rfcomm_process_rx()
1972 if (err < 0) in rfcomm_accept_connection()
2005 rfcomm_send_sabm(s, 0); in rfcomm_check_connection()
2024 rfcomm_send_disc(s, 0); in rfcomm_process_sessions()
2055 int err = 0; in rfcomm_add_listener()
2059 if (err < 0) { in rfcomm_add_listener()
2060 BT_ERR("Create socket failed %d", err); in rfcomm_add_listener()
2068 addr.l2_cid = 0; in rfcomm_add_listener()
2071 if (err < 0) { in rfcomm_add_listener()
2072 BT_ERR("Bind failed %d", err); in rfcomm_add_listener()
2079 /* Set MTU to 0 so L2CAP can auto select the MTU */ in rfcomm_add_listener()
2080 l2cap_pi(sk)->chan->imtu = 0; in rfcomm_add_listener()
2086 BT_ERR("Listen failed %d", err); in rfcomm_add_listener()
2097 return 0; in rfcomm_add_listener()
2134 return 0; in rfcomm_run()
2140 struct rfcomm_dlc *d, *n; in rfcomm_security_cfm() local
2142 BT_DBG("conn %p status 0x%02x encrypt 0x%02x", conn, status, encrypt); in rfcomm_security_cfm()
2148 list_for_each_entry_safe(d, n, &s->dlcs, list) { in rfcomm_security_cfm()
2149 if (test_and_clear_bit(RFCOMM_SEC_PENDING, &d->flags)) { in rfcomm_security_cfm()
2150 rfcomm_dlc_clear_timer(d); in rfcomm_security_cfm()
2151 if (status || encrypt == 0x00) { in rfcomm_security_cfm()
2152 set_bit(RFCOMM_ENC_DROP, &d->flags); in rfcomm_security_cfm()
2157 if (d->state == BT_CONNECTED && !status && encrypt == 0x00) { in rfcomm_security_cfm()
2158 if (d->sec_level == BT_SECURITY_MEDIUM) { in rfcomm_security_cfm()
2159 set_bit(RFCOMM_SEC_PENDING, &d->flags); in rfcomm_security_cfm()
2160 rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); in rfcomm_security_cfm()
2162 } else if (d->sec_level == BT_SECURITY_HIGH || in rfcomm_security_cfm()
2163 d->sec_level == BT_SECURITY_FIPS) { in rfcomm_security_cfm()
2164 set_bit(RFCOMM_ENC_DROP, &d->flags); in rfcomm_security_cfm()
2169 if (!test_and_clear_bit(RFCOMM_AUTH_PENDING, &d->flags)) in rfcomm_security_cfm()
2172 if (!status && hci_conn_check_secure(conn, d->sec_level)) in rfcomm_security_cfm()
2173 set_bit(RFCOMM_AUTH_ACCEPT, &d->flags); in rfcomm_security_cfm()
2175 set_bit(RFCOMM_AUTH_REJECT, &d->flags); in rfcomm_security_cfm()
2194 struct rfcomm_dlc *d; in rfcomm_dlc_debugfs_show() local
2195 list_for_each_entry(d, &s->dlcs, list) { in rfcomm_dlc_debugfs_show()
2196 seq_printf(f, "%pMR %pMR %ld %d %d %d %d\n", in rfcomm_dlc_debugfs_show()
2198 d->state, d->dlci, d->mtu, in rfcomm_dlc_debugfs_show()
2199 d->rx_credits, d->tx_credits); in rfcomm_dlc_debugfs_show()
2205 return 0; in rfcomm_dlc_debugfs_show()
2226 if (err < 0) in rfcomm_init()
2230 if (err < 0) in rfcomm_init()
2236 return 0; in rfcomm_init()
2242 return 0; in rfcomm_init()