Lines Matching refs:d
68 static int rfcomm_queue_disc(struct rfcomm_dlc *d);
70 static int rfcomm_send_pn(struct rfcomm_session *s, int cr, struct rfcomm_dlc *d);
226 static inline int rfcomm_check_security(struct rfcomm_dlc *d) in rfcomm_check_security() argument
228 struct sock *sk = d->session->sock->sk; in rfcomm_check_security()
231 switch (d->sec_level) { in rfcomm_check_security()
243 return hci_conn_security(l2cap_pi(sk)->conn->hcon, d->sec_level, in rfcomm_check_security()
250 struct rfcomm_dlc *d = (void *) arg; in rfcomm_dlc_timeout() local
252 BT_DBG("dlc %p state %ld", d, d->state); in rfcomm_dlc_timeout()
254 set_bit(RFCOMM_TIMED_OUT, &d->flags); in rfcomm_dlc_timeout()
255 rfcomm_dlc_put(d); in rfcomm_dlc_timeout()
259 static void rfcomm_dlc_set_timer(struct rfcomm_dlc *d, long timeout) in rfcomm_dlc_set_timer() argument
261 BT_DBG("dlc %p state %ld timeout %ld", d, d->state, timeout); in rfcomm_dlc_set_timer()
263 if (!mod_timer(&d->timer, jiffies + timeout)) in rfcomm_dlc_set_timer()
264 rfcomm_dlc_hold(d); in rfcomm_dlc_set_timer()
267 static void rfcomm_dlc_clear_timer(struct rfcomm_dlc *d) in rfcomm_dlc_clear_timer() argument
269 BT_DBG("dlc %p state %ld", d, d->state); in rfcomm_dlc_clear_timer()
271 if (timer_pending(&d->timer) && del_timer(&d->timer)) in rfcomm_dlc_clear_timer()
272 rfcomm_dlc_put(d); in rfcomm_dlc_clear_timer()
275 static void rfcomm_dlc_clear_state(struct rfcomm_dlc *d) in rfcomm_dlc_clear_state() argument
277 BT_DBG("%p", d); in rfcomm_dlc_clear_state()
279 d->state = BT_OPEN; in rfcomm_dlc_clear_state()
280 d->flags = 0; in rfcomm_dlc_clear_state()
281 d->mscex = 0; in rfcomm_dlc_clear_state()
282 d->mtu = RFCOMM_DEFAULT_MTU; in rfcomm_dlc_clear_state()
283 d->v24_sig = RFCOMM_V24_RTC | RFCOMM_V24_RTR | RFCOMM_V24_DV; in rfcomm_dlc_clear_state()
285 d->cfc = RFCOMM_CFC_DISABLED; in rfcomm_dlc_clear_state()
286 d->rx_credits = RFCOMM_DEFAULT_CREDITS; in rfcomm_dlc_clear_state()
291 struct rfcomm_dlc *d = kzalloc(sizeof(*d), prio); in rfcomm_dlc_alloc() local
293 if (!d) in rfcomm_dlc_alloc()
296 setup_timer(&d->timer, rfcomm_dlc_timeout, (unsigned long)d); in rfcomm_dlc_alloc()
298 skb_queue_head_init(&d->tx_queue); in rfcomm_dlc_alloc()
299 spin_lock_init(&d->lock); in rfcomm_dlc_alloc()
300 atomic_set(&d->refcnt, 1); in rfcomm_dlc_alloc()
302 rfcomm_dlc_clear_state(d); in rfcomm_dlc_alloc()
304 BT_DBG("%p", d); in rfcomm_dlc_alloc()
306 return d; in rfcomm_dlc_alloc()
309 void rfcomm_dlc_free(struct rfcomm_dlc *d) in rfcomm_dlc_free() argument
311 BT_DBG("%p", d); in rfcomm_dlc_free()
313 skb_queue_purge(&d->tx_queue); in rfcomm_dlc_free()
314 kfree(d); in rfcomm_dlc_free()
317 static void rfcomm_dlc_link(struct rfcomm_session *s, struct rfcomm_dlc *d) in rfcomm_dlc_link() argument
319 BT_DBG("dlc %p session %p", d, s); in rfcomm_dlc_link()
323 rfcomm_dlc_hold(d); in rfcomm_dlc_link()
324 list_add(&d->list, &s->dlcs); in rfcomm_dlc_link()
325 d->session = s; in rfcomm_dlc_link()
328 static void rfcomm_dlc_unlink(struct rfcomm_dlc *d) in rfcomm_dlc_unlink() argument
330 struct rfcomm_session *s = d->session; in rfcomm_dlc_unlink()
332 BT_DBG("dlc %p refcnt %d session %p", d, atomic_read(&d->refcnt), s); in rfcomm_dlc_unlink()
334 list_del(&d->list); in rfcomm_dlc_unlink()
335 d->session = NULL; in rfcomm_dlc_unlink()
336 rfcomm_dlc_put(d); in rfcomm_dlc_unlink()
343 struct rfcomm_dlc *d; in rfcomm_dlc_get() local
347 d = list_entry(p, struct rfcomm_dlc, list); in rfcomm_dlc_get()
348 if (d->dlci == dlci) in rfcomm_dlc_get()
349 return d; in rfcomm_dlc_get()
354 static int __rfcomm_dlc_open(struct rfcomm_dlc *d, bdaddr_t *src, bdaddr_t *dst, u8 channel) in __rfcomm_dlc_open() argument
361 d, d->state, batostr(src), batostr(dst), channel); in __rfcomm_dlc_open()
366 if (d->state != BT_OPEN && d->state != BT_CLOSED) in __rfcomm_dlc_open()
382 rfcomm_dlc_clear_state(d); in __rfcomm_dlc_open()
384 d->dlci = dlci; in __rfcomm_dlc_open()
385 d->addr = __addr(s->initiator, dlci); in __rfcomm_dlc_open()
386 d->priority = 7; in __rfcomm_dlc_open()
388 d->state = BT_CONFIG; in __rfcomm_dlc_open()
389 rfcomm_dlc_link(s, d); in __rfcomm_dlc_open()
391 d->out = 1; in __rfcomm_dlc_open()
393 d->mtu = s->mtu; in __rfcomm_dlc_open()
394 d->cfc = (s->cfc == RFCOMM_CFC_UNKNOWN) ? 0 : s->cfc; in __rfcomm_dlc_open()
397 if (rfcomm_check_security(d)) in __rfcomm_dlc_open()
398 rfcomm_send_pn(s, 1, d); in __rfcomm_dlc_open()
400 set_bit(RFCOMM_AUTH_PENDING, &d->flags); in __rfcomm_dlc_open()
403 rfcomm_dlc_set_timer(d, RFCOMM_CONN_TIMEOUT); in __rfcomm_dlc_open()
408 int rfcomm_dlc_open(struct rfcomm_dlc *d, bdaddr_t *src, bdaddr_t *dst, u8 channel) in rfcomm_dlc_open() argument
414 r = __rfcomm_dlc_open(d, src, dst, channel); in rfcomm_dlc_open()
420 static int __rfcomm_dlc_close(struct rfcomm_dlc *d, int err) in __rfcomm_dlc_close() argument
422 struct rfcomm_session *s = d->session; in __rfcomm_dlc_close()
427 d, d->state, d->dlci, err, s); in __rfcomm_dlc_close()
429 switch (d->state) { in __rfcomm_dlc_close()
431 if (test_and_clear_bit(RFCOMM_DEFER_SETUP, &d->flags)) { in __rfcomm_dlc_close()
432 set_bit(RFCOMM_AUTH_REJECT, &d->flags); in __rfcomm_dlc_close()
439 d->state = BT_DISCONN; in __rfcomm_dlc_close()
440 if (skb_queue_empty(&d->tx_queue)) { in __rfcomm_dlc_close()
441 rfcomm_send_disc(s, d->dlci); in __rfcomm_dlc_close()
442 rfcomm_dlc_set_timer(d, RFCOMM_DISC_TIMEOUT); in __rfcomm_dlc_close()
444 rfcomm_queue_disc(d); in __rfcomm_dlc_close()
445 rfcomm_dlc_set_timer(d, RFCOMM_DISC_TIMEOUT * 2); in __rfcomm_dlc_close()
451 if (test_and_clear_bit(RFCOMM_DEFER_SETUP, &d->flags)) { in __rfcomm_dlc_close()
452 set_bit(RFCOMM_AUTH_REJECT, &d->flags); in __rfcomm_dlc_close()
459 rfcomm_dlc_clear_timer(d); in __rfcomm_dlc_close()
461 rfcomm_dlc_lock(d); in __rfcomm_dlc_close()
462 d->state = BT_CLOSED; in __rfcomm_dlc_close()
463 d->state_change(d, err); in __rfcomm_dlc_close()
464 rfcomm_dlc_unlock(d); in __rfcomm_dlc_close()
466 skb_queue_purge(&d->tx_queue); in __rfcomm_dlc_close()
467 rfcomm_dlc_unlink(d); in __rfcomm_dlc_close()
473 int rfcomm_dlc_close(struct rfcomm_dlc *d, int err) in rfcomm_dlc_close() argument
479 r = __rfcomm_dlc_close(d, err); in rfcomm_dlc_close()
485 int rfcomm_dlc_send(struct rfcomm_dlc *d, struct sk_buff *skb) in rfcomm_dlc_send() argument
489 if (d->state != BT_CONNECTED) in rfcomm_dlc_send()
492 BT_DBG("dlc %p mtu %d len %d", d, d->mtu, len); in rfcomm_dlc_send()
494 if (len > d->mtu) in rfcomm_dlc_send()
497 rfcomm_make_uih(skb, d->addr); in rfcomm_dlc_send()
498 skb_queue_tail(&d->tx_queue, skb); in rfcomm_dlc_send()
500 if (!test_bit(RFCOMM_TX_THROTTLED, &d->flags)) in rfcomm_dlc_send()
505 void __rfcomm_dlc_throttle(struct rfcomm_dlc *d) in __rfcomm_dlc_throttle() argument
507 BT_DBG("dlc %p state %ld", d, d->state); in __rfcomm_dlc_throttle()
509 if (!d->cfc) { in __rfcomm_dlc_throttle()
510 d->v24_sig |= RFCOMM_V24_FC; in __rfcomm_dlc_throttle()
511 set_bit(RFCOMM_MSC_PENDING, &d->flags); in __rfcomm_dlc_throttle()
516 void __rfcomm_dlc_unthrottle(struct rfcomm_dlc *d) in __rfcomm_dlc_unthrottle() argument
518 BT_DBG("dlc %p state %ld", d, d->state); in __rfcomm_dlc_unthrottle()
520 if (!d->cfc) { in __rfcomm_dlc_unthrottle()
521 d->v24_sig &= ~RFCOMM_V24_FC; in __rfcomm_dlc_unthrottle()
522 set_bit(RFCOMM_MSC_PENDING, &d->flags); in __rfcomm_dlc_unthrottle()
532 int rfcomm_dlc_set_modem_status(struct rfcomm_dlc *d, u8 v24_sig) in rfcomm_dlc_set_modem_status() argument
535 d, d->state, v24_sig); in rfcomm_dlc_set_modem_status()
537 if (test_bit(RFCOMM_RX_THROTTLED, &d->flags)) in rfcomm_dlc_set_modem_status()
542 d->v24_sig = v24_sig; in rfcomm_dlc_set_modem_status()
544 if (!test_and_set_bit(RFCOMM_MSC_PENDING, &d->flags)) in rfcomm_dlc_set_modem_status()
550 int rfcomm_dlc_get_modem_status(struct rfcomm_dlc *d, u8 *v24_sig) in rfcomm_dlc_get_modem_status() argument
553 d, d->state, d->v24_sig); in rfcomm_dlc_get_modem_status()
555 *v24_sig = d->v24_sig; in rfcomm_dlc_get_modem_status()
625 struct rfcomm_dlc *d; in rfcomm_session_close() local
636 d = list_entry(p, struct rfcomm_dlc, list); in rfcomm_session_close()
637 d->state = BT_CLOSED; in rfcomm_session_close()
638 __rfcomm_dlc_close(d, err); in rfcomm_session_close()
760 static int rfcomm_queue_disc(struct rfcomm_dlc *d) in rfcomm_queue_disc() argument
765 BT_DBG("dlc %p dlci %d", d, d->dlci); in rfcomm_queue_disc()
772 cmd->addr = d->addr; in rfcomm_queue_disc()
777 skb_queue_tail(&d->tx_queue, skb); in rfcomm_queue_disc()
821 static int rfcomm_send_pn(struct rfcomm_session *s, int cr, struct rfcomm_dlc *d) in rfcomm_send_pn() argument
828 BT_DBG("%p cr %d dlci %d mtu %d", s, cr, d->dlci, d->mtu); in rfcomm_send_pn()
840 pn->dlci = d->dlci; in rfcomm_send_pn()
841 pn->priority = d->priority; in rfcomm_send_pn()
856 pn->mtu = htobs(d->mtu); in rfcomm_send_pn()
1077 struct rfcomm_dlc *d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_ua() local
1078 if (!d) { in rfcomm_recv_ua()
1083 switch (d->state) { in rfcomm_recv_ua()
1085 rfcomm_dlc_clear_timer(d); in rfcomm_recv_ua()
1087 rfcomm_dlc_lock(d); in rfcomm_recv_ua()
1088 d->state = BT_CONNECTED; in rfcomm_recv_ua()
1089 d->state_change(d, 0); in rfcomm_recv_ua()
1090 rfcomm_dlc_unlock(d); in rfcomm_recv_ua()
1092 rfcomm_send_msc(s, 1, dlci, d->v24_sig); in rfcomm_recv_ua()
1096 d->state = BT_CLOSED; in rfcomm_recv_ua()
1097 __rfcomm_dlc_close(d, 0); in rfcomm_recv_ua()
1131 struct rfcomm_dlc *d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_dm() local
1132 if (d) { in rfcomm_recv_dm()
1133 if (d->state == BT_CONNECT || d->state == BT_CONFIG) in rfcomm_recv_dm()
1138 d->state = BT_CLOSED; in rfcomm_recv_dm()
1139 __rfcomm_dlc_close(d, err); in rfcomm_recv_dm()
1160 struct rfcomm_dlc *d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_disc() local
1161 if (d) { in rfcomm_recv_disc()
1164 if (d->state == BT_CONNECT || d->state == BT_CONFIG) in rfcomm_recv_disc()
1169 d->state = BT_CLOSED; in rfcomm_recv_disc()
1170 __rfcomm_dlc_close(d, err); in rfcomm_recv_disc()
1189 void rfcomm_dlc_accept(struct rfcomm_dlc *d) in rfcomm_dlc_accept() argument
1191 struct sock *sk = d->session->sock->sk; in rfcomm_dlc_accept()
1193 BT_DBG("dlc %p", d); in rfcomm_dlc_accept()
1195 rfcomm_send_ua(d->session, d->dlci); in rfcomm_dlc_accept()
1197 rfcomm_dlc_lock(d); in rfcomm_dlc_accept()
1198 d->state = BT_CONNECTED; in rfcomm_dlc_accept()
1199 d->state_change(d, 0); in rfcomm_dlc_accept()
1200 rfcomm_dlc_unlock(d); in rfcomm_dlc_accept()
1202 if (d->role_switch) in rfcomm_dlc_accept()
1205 rfcomm_send_msc(d->session, 1, d->dlci, d->v24_sig); in rfcomm_dlc_accept()
1208 static void rfcomm_check_accept(struct rfcomm_dlc *d) in rfcomm_check_accept() argument
1210 if (rfcomm_check_security(d)) { in rfcomm_check_accept()
1211 if (d->defer_setup) { in rfcomm_check_accept()
1212 set_bit(RFCOMM_DEFER_SETUP, &d->flags); in rfcomm_check_accept()
1213 rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); in rfcomm_check_accept()
1215 rfcomm_dlc_lock(d); in rfcomm_check_accept()
1216 d->state = BT_CONNECT2; in rfcomm_check_accept()
1217 d->state_change(d, 0); in rfcomm_check_accept()
1218 rfcomm_dlc_unlock(d); in rfcomm_check_accept()
1220 rfcomm_dlc_accept(d); in rfcomm_check_accept()
1222 set_bit(RFCOMM_AUTH_PENDING, &d->flags); in rfcomm_check_accept()
1223 rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); in rfcomm_check_accept()
1229 struct rfcomm_dlc *d; in rfcomm_recv_sabm() local
1245 d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_sabm()
1246 if (d) { in rfcomm_recv_sabm()
1247 if (d->state == BT_OPEN) { in rfcomm_recv_sabm()
1249 rfcomm_check_accept(d); in rfcomm_recv_sabm()
1256 if (rfcomm_connect_ind(s, channel, &d)) { in rfcomm_recv_sabm()
1257 d->dlci = dlci; in rfcomm_recv_sabm()
1258 d->addr = __addr(s->initiator, dlci); in rfcomm_recv_sabm()
1259 rfcomm_dlc_link(s, d); in rfcomm_recv_sabm()
1261 rfcomm_check_accept(d); in rfcomm_recv_sabm()
1269 static int rfcomm_apply_pn(struct rfcomm_dlc *d, int cr, struct rfcomm_pn *pn) in rfcomm_apply_pn() argument
1271 struct rfcomm_session *s = d->session; in rfcomm_apply_pn()
1274 d, d->state, d->dlci, pn->mtu, pn->flow_ctrl, pn->credits); in rfcomm_apply_pn()
1278 d->cfc = RFCOMM_CFC_ENABLED; in rfcomm_apply_pn()
1279 d->tx_credits = pn->credits; in rfcomm_apply_pn()
1281 d->cfc = RFCOMM_CFC_DISABLED; in rfcomm_apply_pn()
1282 set_bit(RFCOMM_TX_THROTTLED, &d->flags); in rfcomm_apply_pn()
1286 s->cfc = d->cfc; in rfcomm_apply_pn()
1288 d->priority = pn->priority; in rfcomm_apply_pn()
1290 d->mtu = btohs(pn->mtu); in rfcomm_apply_pn()
1292 if (cr && d->mtu > s->mtu) in rfcomm_apply_pn()
1293 d->mtu = s->mtu; in rfcomm_apply_pn()
1301 struct rfcomm_dlc *d; in rfcomm_recv_pn() local
1309 d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_pn()
1310 if (d) { in rfcomm_recv_pn()
1313 rfcomm_apply_pn(d, cr, pn); in rfcomm_recv_pn()
1314 rfcomm_send_pn(s, 0, d); in rfcomm_recv_pn()
1317 switch (d->state) { in rfcomm_recv_pn()
1319 rfcomm_apply_pn(d, cr, pn); in rfcomm_recv_pn()
1321 d->state = BT_CONNECT; in rfcomm_recv_pn()
1322 rfcomm_send_sabm(s, d->dlci); in rfcomm_recv_pn()
1334 if (rfcomm_connect_ind(s, channel, &d)) { in rfcomm_recv_pn()
1335 d->dlci = dlci; in rfcomm_recv_pn()
1336 d->addr = __addr(s->initiator, dlci); in rfcomm_recv_pn()
1337 rfcomm_dlc_link(s, d); in rfcomm_recv_pn()
1339 rfcomm_apply_pn(d, cr, pn); in rfcomm_recv_pn()
1341 d->state = BT_OPEN; in rfcomm_recv_pn()
1342 rfcomm_send_pn(s, 0, d); in rfcomm_recv_pn()
1478 struct rfcomm_dlc *d; in rfcomm_recv_msc() local
1483 d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_msc()
1484 if (!d) in rfcomm_recv_msc()
1488 if (msc->v24_sig & RFCOMM_V24_FC && !d->cfc) in rfcomm_recv_msc()
1489 set_bit(RFCOMM_TX_THROTTLED, &d->flags); in rfcomm_recv_msc()
1491 clear_bit(RFCOMM_TX_THROTTLED, &d->flags); in rfcomm_recv_msc()
1493 rfcomm_dlc_lock(d); in rfcomm_recv_msc()
1495 d->remote_v24_sig = msc->v24_sig; in rfcomm_recv_msc()
1497 if (d->modem_status) in rfcomm_recv_msc()
1498 d->modem_status(d, msc->v24_sig); in rfcomm_recv_msc()
1500 rfcomm_dlc_unlock(d); in rfcomm_recv_msc()
1504 d->mscex |= RFCOMM_MSCEX_RX; in rfcomm_recv_msc()
1506 d->mscex |= RFCOMM_MSCEX_TX; in rfcomm_recv_msc()
1573 struct rfcomm_dlc *d; in rfcomm_recv_data() local
1577 d = rfcomm_dlc_get(s, dlci); in rfcomm_recv_data()
1578 if (!d) { in rfcomm_recv_data()
1583 if (pf && d->cfc) { in rfcomm_recv_data()
1586 d->tx_credits += credits; in rfcomm_recv_data()
1587 if (d->tx_credits) in rfcomm_recv_data()
1588 clear_bit(RFCOMM_TX_THROTTLED, &d->flags); in rfcomm_recv_data()
1591 if (skb->len && d->state == BT_CONNECTED) { in rfcomm_recv_data()
1592 rfcomm_dlc_lock(d); in rfcomm_recv_data()
1593 d->rx_credits--; in rfcomm_recv_data()
1594 d->data_ready(d, skb); in rfcomm_recv_data()
1595 rfcomm_dlc_unlock(d); in rfcomm_recv_data()
1666 struct rfcomm_dlc *d; in rfcomm_process_connect() local
1672 d = list_entry(p, struct rfcomm_dlc, list); in rfcomm_process_connect()
1673 if (d->state == BT_CONFIG) { in rfcomm_process_connect()
1674 d->mtu = s->mtu; in rfcomm_process_connect()
1675 if (rfcomm_check_security(d)) { in rfcomm_process_connect()
1676 rfcomm_send_pn(s, 1, d); in rfcomm_process_connect()
1678 set_bit(RFCOMM_AUTH_PENDING, &d->flags); in rfcomm_process_connect()
1679 rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); in rfcomm_process_connect()
1688 static inline int rfcomm_process_tx(struct rfcomm_dlc *d) in rfcomm_process_tx() argument
1694 d, d->state, d->cfc, d->rx_credits, d->tx_credits); in rfcomm_process_tx()
1697 if (test_and_clear_bit(RFCOMM_MSC_PENDING, &d->flags)) in rfcomm_process_tx()
1698 rfcomm_send_msc(d->session, 1, d->dlci, d->v24_sig); in rfcomm_process_tx()
1700 if (d->cfc) { in rfcomm_process_tx()
1703 if (!test_bit(RFCOMM_RX_THROTTLED, &d->flags) && in rfcomm_process_tx()
1704 d->rx_credits <= (d->cfc >> 2)) { in rfcomm_process_tx()
1705 rfcomm_send_credits(d->session, d->addr, d->cfc - d->rx_credits); in rfcomm_process_tx()
1706 d->rx_credits = d->cfc; in rfcomm_process_tx()
1711 d->tx_credits = 5; in rfcomm_process_tx()
1714 if (test_bit(RFCOMM_TX_THROTTLED, &d->flags)) in rfcomm_process_tx()
1715 return skb_queue_len(&d->tx_queue); in rfcomm_process_tx()
1717 while (d->tx_credits && (skb = skb_dequeue(&d->tx_queue))) { in rfcomm_process_tx()
1718 err = rfcomm_send_frame(d->session, skb->data, skb->len); in rfcomm_process_tx()
1720 skb_queue_head(&d->tx_queue, skb); in rfcomm_process_tx()
1724 d->tx_credits--; in rfcomm_process_tx()
1727 if (d->cfc && !d->tx_credits) { in rfcomm_process_tx()
1730 set_bit(RFCOMM_TX_THROTTLED, &d->flags); in rfcomm_process_tx()
1733 return skb_queue_len(&d->tx_queue); in rfcomm_process_tx()
1738 struct rfcomm_dlc *d; in rfcomm_process_dlcs() local
1744 d = list_entry(p, struct rfcomm_dlc, list); in rfcomm_process_dlcs()
1746 if (test_bit(RFCOMM_TIMED_OUT, &d->flags)) { in rfcomm_process_dlcs()
1747 __rfcomm_dlc_close(d, ETIMEDOUT); in rfcomm_process_dlcs()
1751 if (test_and_clear_bit(RFCOMM_AUTH_ACCEPT, &d->flags)) { in rfcomm_process_dlcs()
1752 rfcomm_dlc_clear_timer(d); in rfcomm_process_dlcs()
1753 if (d->out) { in rfcomm_process_dlcs()
1754 rfcomm_send_pn(s, 1, d); in rfcomm_process_dlcs()
1755 rfcomm_dlc_set_timer(d, RFCOMM_CONN_TIMEOUT); in rfcomm_process_dlcs()
1757 if (d->defer_setup) { in rfcomm_process_dlcs()
1758 set_bit(RFCOMM_DEFER_SETUP, &d->flags); in rfcomm_process_dlcs()
1759 rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); in rfcomm_process_dlcs()
1761 rfcomm_dlc_lock(d); in rfcomm_process_dlcs()
1762 d->state = BT_CONNECT2; in rfcomm_process_dlcs()
1763 d->state_change(d, 0); in rfcomm_process_dlcs()
1764 rfcomm_dlc_unlock(d); in rfcomm_process_dlcs()
1766 rfcomm_dlc_accept(d); in rfcomm_process_dlcs()
1769 } else if (test_and_clear_bit(RFCOMM_AUTH_REJECT, &d->flags)) { in rfcomm_process_dlcs()
1770 rfcomm_dlc_clear_timer(d); in rfcomm_process_dlcs()
1771 if (!d->out) in rfcomm_process_dlcs()
1772 rfcomm_send_dm(s, d->dlci); in rfcomm_process_dlcs()
1774 d->state = BT_CLOSED; in rfcomm_process_dlcs()
1775 __rfcomm_dlc_close(d, ECONNREFUSED); in rfcomm_process_dlcs()
1779 if (test_bit(RFCOMM_SEC_PENDING, &d->flags)) in rfcomm_process_dlcs()
1785 if ((d->state == BT_CONNECTED || d->state == BT_DISCONN) && in rfcomm_process_dlcs()
1786 d->mscex == RFCOMM_MSCEX_OK) in rfcomm_process_dlcs()
1787 rfcomm_process_tx(d); in rfcomm_process_dlcs()
1999 struct rfcomm_dlc *d; in rfcomm_security_cfm() local
2011 d = list_entry(p, struct rfcomm_dlc, list); in rfcomm_security_cfm()
2013 if (test_and_clear_bit(RFCOMM_SEC_PENDING, &d->flags)) { in rfcomm_security_cfm()
2014 rfcomm_dlc_clear_timer(d); in rfcomm_security_cfm()
2016 __rfcomm_dlc_close(d, ECONNREFUSED); in rfcomm_security_cfm()
2021 if (d->state == BT_CONNECTED && !status && encrypt == 0x00) { in rfcomm_security_cfm()
2022 if (d->sec_level == BT_SECURITY_MEDIUM) { in rfcomm_security_cfm()
2023 set_bit(RFCOMM_SEC_PENDING, &d->flags); in rfcomm_security_cfm()
2024 rfcomm_dlc_set_timer(d, RFCOMM_AUTH_TIMEOUT); in rfcomm_security_cfm()
2026 } else if (d->sec_level == BT_SECURITY_HIGH) { in rfcomm_security_cfm()
2027 __rfcomm_dlc_close(d, ECONNREFUSED); in rfcomm_security_cfm()
2032 if (!test_and_clear_bit(RFCOMM_AUTH_PENDING, &d->flags)) in rfcomm_security_cfm()
2036 set_bit(RFCOMM_AUTH_ACCEPT, &d->flags); in rfcomm_security_cfm()
2038 set_bit(RFCOMM_AUTH_REJECT, &d->flags); in rfcomm_security_cfm()
2063 struct rfcomm_dlc *d = list_entry(pp, struct rfcomm_dlc, list); in rfcomm_dlc_sysfs_show() local
2067 d->state, d->dlci, d->mtu, d->rx_credits, d->tx_credits); in rfcomm_dlc_sysfs_show()