Lines Matching refs:self

45 static void __irttp_close_tsap(struct tsap_cb *self);
59 static void irttp_run_tx_queue(struct tsap_cb *self);
60 static void irttp_run_rx_queue(struct tsap_cb *self);
62 static void irttp_flush_queues(struct tsap_cb *self);
63 static void irttp_fragment_skb(struct tsap_cb *self, struct sk_buff *skb);
64 static struct sk_buff *irttp_reassemble_skb(struct tsap_cb *self);
143 static inline void irttp_start_todo_timer(struct tsap_cb *self, int timeout) in irttp_start_todo_timer() argument
146 mod_timer(&self->todo_timer, jiffies + timeout); in irttp_start_todo_timer()
165 struct tsap_cb *self = (struct tsap_cb *) data; in irttp_todo_expired() local
168 if (!self || self->magic != TTP_TSAP_MAGIC) in irttp_todo_expired()
171 pr_debug("%s(instance=%p)\n", __func__, self); in irttp_todo_expired()
174 irttp_run_rx_queue(self); in irttp_todo_expired()
175 irttp_run_tx_queue(self); in irttp_todo_expired()
178 if (test_bit(0, &self->disconnect_pend)) { in irttp_todo_expired()
180 if (skb_queue_empty(&self->tx_queue)) { in irttp_todo_expired()
182 clear_bit(0, &self->disconnect_pend); /* FALSE */ in irttp_todo_expired()
185 irttp_disconnect_request(self, self->disconnect_skb, in irttp_todo_expired()
187 self->disconnect_skb = NULL; in irttp_todo_expired()
190 irttp_start_todo_timer(self, HZ/10); in irttp_todo_expired()
198 if (self->close_pend) in irttp_todo_expired()
200 irttp_close_tsap(self); in irttp_todo_expired()
208 static void irttp_flush_queues(struct tsap_cb *self) in irttp_flush_queues() argument
212 IRDA_ASSERT(self != NULL, return;); in irttp_flush_queues()
213 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return;); in irttp_flush_queues()
216 while ((skb = skb_dequeue(&self->tx_queue)) != NULL) in irttp_flush_queues()
220 while ((skb = skb_dequeue(&self->rx_queue)) != NULL) in irttp_flush_queues()
224 while ((skb = skb_dequeue(&self->rx_fragments)) != NULL) in irttp_flush_queues()
235 static struct sk_buff *irttp_reassemble_skb(struct tsap_cb *self) in irttp_reassemble_skb() argument
240 IRDA_ASSERT(self != NULL, return NULL;); in irttp_reassemble_skb()
241 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return NULL;); in irttp_reassemble_skb()
244 self->rx_sdu_size); in irttp_reassemble_skb()
246 skb = dev_alloc_skb(TTP_HEADER + self->rx_sdu_size); in irttp_reassemble_skb()
255 skb_put(skb, self->rx_sdu_size); in irttp_reassemble_skb()
260 while ((frag = skb_dequeue(&self->rx_fragments)) != NULL) { in irttp_reassemble_skb()
268 __func__, n, self->rx_sdu_size, self->rx_max_sdu_size); in irttp_reassemble_skb()
275 IRDA_ASSERT(n <= self->rx_sdu_size, n = self->rx_sdu_size;); in irttp_reassemble_skb()
280 self->rx_sdu_size = 0; in irttp_reassemble_skb()
291 static inline void irttp_fragment_skb(struct tsap_cb *self, in irttp_fragment_skb() argument
297 IRDA_ASSERT(self != NULL, return;); in irttp_fragment_skb()
298 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return;); in irttp_fragment_skb()
304 while (skb->len > self->max_seg_size) { in irttp_fragment_skb()
308 frag = alloc_skb(self->max_seg_size+self->max_header_size, in irttp_fragment_skb()
313 skb_reserve(frag, self->max_header_size); in irttp_fragment_skb()
316 skb_copy_from_linear_data(skb, skb_put(frag, self->max_seg_size), in irttp_fragment_skb()
317 self->max_seg_size); in irttp_fragment_skb()
324 skb_pull(skb, self->max_seg_size); in irttp_fragment_skb()
327 skb_queue_tail(&self->tx_queue, frag); in irttp_fragment_skb()
336 skb_queue_tail(&self->tx_queue, skb); in irttp_fragment_skb()
349 struct tsap_cb *self; in irttp_param_max_sdu_size() local
351 self = instance; in irttp_param_max_sdu_size()
353 IRDA_ASSERT(self != NULL, return -1;); in irttp_param_max_sdu_size()
354 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return -1;); in irttp_param_max_sdu_size()
357 param->pv.i = self->tx_max_sdu_size; in irttp_param_max_sdu_size()
359 self->tx_max_sdu_size = param->pv.i; in irttp_param_max_sdu_size()
391 struct tsap_cb *self; in irttp_open_tsap() local
406 self = kzalloc(sizeof(struct tsap_cb), GFP_ATOMIC); in irttp_open_tsap()
407 if (self == NULL) in irttp_open_tsap()
411 irttp_init_tsap(self); in irttp_open_tsap()
414 self->todo_timer.data = (unsigned long) self; in irttp_open_tsap()
415 self->todo_timer.function = &irttp_todo_expired; in irttp_open_tsap()
427 ttp_notify.instance = self; in irttp_open_tsap()
430 self->magic = TTP_TSAP_MAGIC; in irttp_open_tsap()
431 self->connected = FALSE; in irttp_open_tsap()
439 __irttp_close_tsap(self); in irttp_open_tsap()
448 self->stsap_sel = lsap->slsap_sel; in irttp_open_tsap()
449 pr_debug("%s(), stsap_sel=%02x\n", __func__, self->stsap_sel); in irttp_open_tsap()
451 self->notify = *notify; in irttp_open_tsap()
452 self->lsap = lsap; in irttp_open_tsap()
454 hashbin_insert(irttp->tsaps, (irda_queue_t *) self, (long) self, NULL); in irttp_open_tsap()
457 self->initial_credit = TTP_RX_MAX_CREDIT; in irttp_open_tsap()
459 self->initial_credit = credit; in irttp_open_tsap()
461 return self; in irttp_open_tsap()
472 static void __irttp_close_tsap(struct tsap_cb *self) in __irttp_close_tsap() argument
475 IRDA_ASSERT(self != NULL, return;); in __irttp_close_tsap()
476 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return;); in __irttp_close_tsap()
478 irttp_flush_queues(self); in __irttp_close_tsap()
480 del_timer(&self->todo_timer); in __irttp_close_tsap()
484 if (self->disconnect_skb) in __irttp_close_tsap()
485 dev_kfree_skb(self->disconnect_skb); in __irttp_close_tsap()
487 self->connected = FALSE; in __irttp_close_tsap()
488 self->magic = ~TTP_TSAP_MAGIC; in __irttp_close_tsap()
490 kfree(self); in __irttp_close_tsap()
503 int irttp_close_tsap(struct tsap_cb *self) in irttp_close_tsap() argument
507 IRDA_ASSERT(self != NULL, return -1;); in irttp_close_tsap()
508 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return -1;); in irttp_close_tsap()
511 if (self->connected) { in irttp_close_tsap()
513 if (!test_bit(0, &self->disconnect_pend)) { in irttp_close_tsap()
516 irttp_disconnect_request(self, NULL, P_NORMAL); in irttp_close_tsap()
518 self->close_pend = TRUE; in irttp_close_tsap()
519 irttp_start_todo_timer(self, HZ/10); in irttp_close_tsap()
524 tsap = hashbin_remove(irttp->tsaps, (long) self, NULL); in irttp_close_tsap()
526 IRDA_ASSERT(tsap == self, return -1;); in irttp_close_tsap()
529 if (self->lsap) { in irttp_close_tsap()
530 irlmp_close_lsap(self->lsap); in irttp_close_tsap()
531 self->lsap = NULL; in irttp_close_tsap()
534 __irttp_close_tsap(self); in irttp_close_tsap()
546 int irttp_udata_request(struct tsap_cb *self, struct sk_buff *skb) in irttp_udata_request() argument
550 IRDA_ASSERT(self != NULL, return -1;); in irttp_udata_request()
551 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return -1;); in irttp_udata_request()
561 if (!self->connected) { in irttp_udata_request()
567 if (skb->len > self->max_seg_size) { in irttp_udata_request()
574 irlmp_udata_request(self->lsap, skb); in irttp_udata_request()
575 self->stats.tx_packets++; in irttp_udata_request()
592 int irttp_data_request(struct tsap_cb *self, struct sk_buff *skb) in irttp_data_request() argument
597 IRDA_ASSERT(self != NULL, return -1;); in irttp_data_request()
598 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return -1;); in irttp_data_request()
602 skb_queue_len(&self->tx_queue)); in irttp_data_request()
611 if (!self->connected) { in irttp_data_request()
621 if ((self->tx_max_sdu_size == 0) && (skb->len > self->max_seg_size)) { in irttp_data_request()
632 if ((self->tx_max_sdu_size != 0) && in irttp_data_request()
633 (self->tx_max_sdu_size != TTP_SAR_UNBOUND) && in irttp_data_request()
634 (skb->len > self->tx_max_sdu_size)) { in irttp_data_request()
643 if (skb_queue_len(&self->tx_queue) >= TTP_TX_MAX_QUEUE) { in irttp_data_request()
647 irttp_run_tx_queue(self); in irttp_data_request()
656 if ((self->tx_max_sdu_size == 0) || (skb->len < self->max_seg_size)) { in irttp_data_request()
662 skb_queue_tail(&self->tx_queue, skb); in irttp_data_request()
670 irttp_fragment_skb(self, skb); in irttp_data_request()
674 if ((!self->tx_sdu_busy) && in irttp_data_request()
675 (skb_queue_len(&self->tx_queue) > TTP_TX_HIGH_THRESHOLD)) { in irttp_data_request()
677 if (self->notify.flow_indication) { in irttp_data_request()
678 self->notify.flow_indication(self->notify.instance, in irttp_data_request()
679 self, FLOW_STOP); in irttp_data_request()
688 self->tx_sdu_busy = TRUE; in irttp_data_request()
692 irttp_run_tx_queue(self); in irttp_data_request()
708 static void irttp_run_tx_queue(struct tsap_cb *self) in irttp_run_tx_queue() argument
716 self->send_credit, skb_queue_len(&self->tx_queue)); in irttp_run_tx_queue()
719 if (irda_lock(&self->tx_queue_lock) == FALSE) in irttp_run_tx_queue()
725 while ((self->send_credit > 0) && in irttp_run_tx_queue()
726 (!irlmp_lap_tx_queue_full(self->lsap)) && in irttp_run_tx_queue()
727 (skb = skb_dequeue(&self->tx_queue))) { in irttp_run_tx_queue()
733 spin_lock_irqsave(&self->lock, flags); in irttp_run_tx_queue()
735 n = self->avail_credit; in irttp_run_tx_queue()
736 self->avail_credit = 0; in irttp_run_tx_queue()
740 self->avail_credit = n-127; in irttp_run_tx_queue()
743 self->remote_credit += n; in irttp_run_tx_queue()
744 self->send_credit--; in irttp_run_tx_queue()
746 spin_unlock_irqrestore(&self->lock, flags); in irttp_run_tx_queue()
779 irlmp_data_request(self->lsap, skb); in irttp_run_tx_queue()
780 self->stats.tx_packets++; in irttp_run_tx_queue()
789 if ((self->tx_sdu_busy) && in irttp_run_tx_queue()
790 (skb_queue_len(&self->tx_queue) < TTP_TX_LOW_THRESHOLD) && in irttp_run_tx_queue()
791 (!self->close_pend)) { in irttp_run_tx_queue()
792 if (self->notify.flow_indication) in irttp_run_tx_queue()
793 self->notify.flow_indication(self->notify.instance, in irttp_run_tx_queue()
794 self, FLOW_START); in irttp_run_tx_queue()
799 self->tx_sdu_busy = FALSE; in irttp_run_tx_queue()
803 self->tx_queue_lock = 0; in irttp_run_tx_queue()
812 static inline void irttp_give_credit(struct tsap_cb *self) in irttp_give_credit() argument
818 IRDA_ASSERT(self != NULL, return;); in irttp_give_credit()
819 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return;); in irttp_give_credit()
823 self->send_credit, self->avail_credit, self->remote_credit); in irttp_give_credit()
838 spin_lock_irqsave(&self->lock, flags); in irttp_give_credit()
840 n = self->avail_credit; in irttp_give_credit()
841 self->avail_credit = 0; in irttp_give_credit()
845 self->avail_credit = n - 127; in irttp_give_credit()
848 self->remote_credit += n; in irttp_give_credit()
850 spin_unlock_irqrestore(&self->lock, flags); in irttp_give_credit()
855 irlmp_data_request(self->lsap, tx_skb); in irttp_give_credit()
856 self->stats.tx_packets++; in irttp_give_credit()
868 struct tsap_cb *self; in irttp_udata_indication() local
871 self = instance; in irttp_udata_indication()
873 IRDA_ASSERT(self != NULL, return -1;); in irttp_udata_indication()
874 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return -1;); in irttp_udata_indication()
877 self->stats.rx_packets++; in irttp_udata_indication()
880 if (self->notify.udata_indication) { in irttp_udata_indication()
881 err = self->notify.udata_indication(self->notify.instance, in irttp_udata_indication()
882 self, skb); in irttp_udata_indication()
902 struct tsap_cb *self; in irttp_data_indication() local
906 self = instance; in irttp_data_indication()
910 self->stats.rx_packets++; in irttp_data_indication()
917 spin_lock_irqsave(&self->lock, flags); in irttp_data_indication()
918 self->send_credit += n; in irttp_data_indication()
920 self->remote_credit--; in irttp_data_indication()
921 spin_unlock_irqrestore(&self->lock, flags); in irttp_data_indication()
932 skb_queue_tail(&self->rx_queue, skb); in irttp_data_indication()
950 irttp_run_rx_queue(self); in irttp_data_indication()
964 if (self->send_credit == n) { in irttp_data_indication()
966 irttp_run_tx_queue(self); in irttp_data_indication()
984 struct tsap_cb *self; in irttp_status_indication() local
986 self = instance; in irttp_status_indication()
988 IRDA_ASSERT(self != NULL, return;); in irttp_status_indication()
989 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return;); in irttp_status_indication()
992 if (self->close_pend) in irttp_status_indication()
998 if (self->notify.status_indication != NULL) in irttp_status_indication()
999 self->notify.status_indication(self->notify.instance, in irttp_status_indication()
1013 struct tsap_cb *self; in irttp_flow_indication() local
1015 self = instance; in irttp_flow_indication()
1017 IRDA_ASSERT(self != NULL, return;); in irttp_flow_indication()
1018 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return;); in irttp_flow_indication()
1020 pr_debug("%s(instance=%p)\n", __func__, self); in irttp_flow_indication()
1031 irttp_run_tx_queue(self); in irttp_flow_indication()
1045 if (self->disconnect_pend) in irttp_flow_indication()
1046 irttp_start_todo_timer(self, 0); in irttp_flow_indication()
1056 void irttp_flow_request(struct tsap_cb *self, LOCAL_FLOW flow) in irttp_flow_request() argument
1058 IRDA_ASSERT(self != NULL, return;); in irttp_flow_request()
1059 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return;); in irttp_flow_request()
1064 self->rx_sdu_busy = TRUE; in irttp_flow_request()
1068 self->rx_sdu_busy = FALSE; in irttp_flow_request()
1072 irttp_run_rx_queue(self); in irttp_flow_request()
1087 int irttp_connect_request(struct tsap_cb *self, __u8 dtsap_sel, in irttp_connect_request() argument
1098 IRDA_ASSERT(self != NULL, return -EBADR;); in irttp_connect_request()
1099 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return -EBADR;); in irttp_connect_request()
1101 if (self->connected) { in irttp_connect_request()
1127 self->connected = FALSE; in irttp_connect_request()
1128 self->avail_credit = 0; in irttp_connect_request()
1129 self->rx_max_sdu_size = max_sdu_size; in irttp_connect_request()
1130 self->rx_sdu_size = 0; in irttp_connect_request()
1131 self->rx_sdu_busy = FALSE; in irttp_connect_request()
1132 self->dtsap_sel = dtsap_sel; in irttp_connect_request()
1134 n = self->initial_credit; in irttp_connect_request()
1136 self->remote_credit = 0; in irttp_connect_request()
1137 self->send_credit = 0; in irttp_connect_request()
1143 self->avail_credit = n - 127; in irttp_connect_request()
1147 self->remote_credit = n; in irttp_connect_request()
1173 return irlmp_connect_request(self->lsap, dtsap_sel, saddr, daddr, qos, in irttp_connect_request()
1188 struct tsap_cb *self; in irttp_connect_confirm() local
1194 self = instance; in irttp_connect_confirm()
1196 IRDA_ASSERT(self != NULL, return;); in irttp_connect_confirm()
1197 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return;); in irttp_connect_confirm()
1200 self->max_seg_size = max_seg_size - TTP_HEADER; in irttp_connect_confirm()
1201 self->max_header_size = max_header_size + TTP_HEADER; in irttp_connect_confirm()
1218 self->send_credit = n; in irttp_connect_confirm()
1219 self->tx_max_sdu_size = 0; in irttp_connect_confirm()
1220 self->connected = TRUE; in irttp_connect_confirm()
1230 ret = irda_param_extract_all(self, skb->data+1, in irttp_connect_confirm()
1248 self->send_credit, self->avail_credit, self->remote_credit); in irttp_connect_confirm()
1251 self->tx_max_sdu_size); in irttp_connect_confirm()
1253 if (self->notify.connect_confirm) { in irttp_connect_confirm()
1254 self->notify.connect_confirm(self->notify.instance, self, qos, in irttp_connect_confirm()
1255 self->tx_max_sdu_size, in irttp_connect_confirm()
1256 self->max_header_size, skb); in irttp_connect_confirm()
1271 struct tsap_cb *self; in irttp_connect_indication() local
1278 self = instance; in irttp_connect_indication()
1280 IRDA_ASSERT(self != NULL, return;); in irttp_connect_indication()
1281 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return;); in irttp_connect_indication()
1286 self->max_seg_size = max_seg_size - TTP_HEADER; in irttp_connect_indication()
1287 self->max_header_size = max_header_size+TTP_HEADER; in irttp_connect_indication()
1289 pr_debug("%s(), TSAP sel=%02x\n", __func__, self->stsap_sel); in irttp_connect_indication()
1292 self->dtsap_sel = lsap->dlsap_sel; in irttp_connect_indication()
1296 self->send_credit = n; in irttp_connect_indication()
1297 self->tx_max_sdu_size = 0; in irttp_connect_indication()
1307 ret = irda_param_extract_all(self, skb->data+1, in irttp_connect_indication()
1325 if (self->notify.connect_indication) { in irttp_connect_indication()
1326 self->notify.connect_indication(self->notify.instance, self, in irttp_connect_indication()
1327 qos, self->tx_max_sdu_size, in irttp_connect_indication()
1328 self->max_header_size, skb); in irttp_connect_indication()
1340 int irttp_connect_response(struct tsap_cb *self, __u32 max_sdu_size, in irttp_connect_response() argument
1348 IRDA_ASSERT(self != NULL, return -1;); in irttp_connect_response()
1349 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return -1;); in irttp_connect_response()
1352 self->stsap_sel); in irttp_connect_response()
1373 self->avail_credit = 0; in irttp_connect_response()
1374 self->remote_credit = 0; in irttp_connect_response()
1375 self->rx_max_sdu_size = max_sdu_size; in irttp_connect_response()
1376 self->rx_sdu_size = 0; in irttp_connect_response()
1377 self->rx_sdu_busy = FALSE; in irttp_connect_response()
1379 n = self->initial_credit; in irttp_connect_response()
1383 self->avail_credit = n - 127; in irttp_connect_response()
1387 self->remote_credit = n; in irttp_connect_response()
1388 self->connected = TRUE; in irttp_connect_response()
1416 ret = irlmp_connect_response(self->lsap, tx_skb); in irttp_connect_response()
1483 int irttp_disconnect_request(struct tsap_cb *self, struct sk_buff *userdata, in irttp_disconnect_request() argument
1488 IRDA_ASSERT(self != NULL, return -1;); in irttp_disconnect_request()
1489 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return -1;); in irttp_disconnect_request()
1492 if (!self->connected) { in irttp_disconnect_request()
1504 if (test_and_set_bit(0, &self->disconnect_pend)) { in irttp_disconnect_request()
1511 irttp_run_tx_queue(self); in irttp_disconnect_request()
1518 if (!skb_queue_empty(&self->tx_queue)) { in irttp_disconnect_request()
1526 irttp_flush_queues(self); in irttp_disconnect_request()
1533 self->disconnect_skb = userdata; /* May be NULL */ in irttp_disconnect_request()
1535 irttp_run_tx_queue(self); in irttp_disconnect_request()
1537 irttp_start_todo_timer(self, HZ/10); in irttp_disconnect_request()
1547 self->connected = FALSE; in irttp_disconnect_request()
1562 ret = irlmp_disconnect_request(self->lsap, userdata); in irttp_disconnect_request()
1565 clear_bit(0, &self->disconnect_pend); /* FALSE */ in irttp_disconnect_request()
1580 struct tsap_cb *self; in irttp_disconnect_indication() local
1582 self = instance; in irttp_disconnect_indication()
1584 IRDA_ASSERT(self != NULL, return;); in irttp_disconnect_indication()
1585 IRDA_ASSERT(self->magic == TTP_TSAP_MAGIC, return;); in irttp_disconnect_indication()
1588 self->connected = FALSE; in irttp_disconnect_indication()
1591 if (self->close_pend) { in irttp_disconnect_indication()
1596 irttp_close_tsap(self); in irttp_disconnect_indication()
1607 if (self->notify.disconnect_indication) in irttp_disconnect_indication()
1608 self->notify.disconnect_indication(self->notify.instance, self, in irttp_disconnect_indication()
1622 static void irttp_do_data_indication(struct tsap_cb *self, struct sk_buff *skb) in irttp_do_data_indication() argument
1627 if (self->close_pend) { in irttp_do_data_indication()
1632 err = self->notify.data_indication(self->notify.instance, self, skb); in irttp_do_data_indication()
1643 self->rx_sdu_busy = TRUE; in irttp_do_data_indication()
1650 skb_queue_head(&self->rx_queue, skb); in irttp_do_data_indication()
1660 static void irttp_run_rx_queue(struct tsap_cb *self) in irttp_run_rx_queue() argument
1666 self->send_credit, self->avail_credit, self->remote_credit); in irttp_run_rx_queue()
1669 if (irda_lock(&self->rx_queue_lock) == FALSE) in irttp_run_rx_queue()
1675 while (!self->rx_sdu_busy && (skb = skb_dequeue(&self->rx_queue))) { in irttp_run_rx_queue()
1683 self->rx_sdu_size += skb->len; in irttp_run_rx_queue()
1691 if (self->rx_max_sdu_size == TTP_SAR_DISABLE) { in irttp_run_rx_queue()
1692 irttp_do_data_indication(self, skb); in irttp_run_rx_queue()
1693 self->rx_sdu_size = 0; in irttp_run_rx_queue()
1704 if (self->rx_sdu_size <= self->rx_max_sdu_size) { in irttp_run_rx_queue()
1707 skb_queue_tail(&self->rx_fragments, skb); in irttp_run_rx_queue()
1717 if ((self->rx_sdu_size <= self->rx_max_sdu_size) || in irttp_run_rx_queue()
1718 (self->rx_max_sdu_size == TTP_SAR_UNBOUND)) { in irttp_run_rx_queue()
1725 if (!skb_queue_empty(&self->rx_fragments)) { in irttp_run_rx_queue()
1726 skb_queue_tail(&self->rx_fragments, in irttp_run_rx_queue()
1729 skb = irttp_reassemble_skb(self); in irttp_run_rx_queue()
1733 irttp_do_data_indication(self, skb); in irttp_run_rx_queue()
1741 skb = irttp_reassemble_skb(self); in irttp_run_rx_queue()
1743 irttp_do_data_indication(self, skb); in irttp_run_rx_queue()
1745 self->rx_sdu_size = 0; in irttp_run_rx_queue()
1759 self->avail_credit = (self->initial_credit - in irttp_run_rx_queue()
1760 (self->remote_credit + in irttp_run_rx_queue()
1761 skb_queue_len(&self->rx_queue) + in irttp_run_rx_queue()
1762 skb_queue_len(&self->rx_fragments))); in irttp_run_rx_queue()
1765 if ((self->remote_credit <= TTP_RX_MIN_CREDIT) && in irttp_run_rx_queue()
1766 (self->avail_credit > 0)) { in irttp_run_rx_queue()
1768 irttp_give_credit(self); in irttp_run_rx_queue()
1786 self->rx_queue_lock = 0; in irttp_run_rx_queue()
1797 struct tsap_cb *self; in irttp_seq_start() local
1803 for (self = (struct tsap_cb *) hashbin_get_first(irttp->tsaps); in irttp_seq_start()
1804 self != NULL; in irttp_seq_start()
1805 self = (struct tsap_cb *) hashbin_get_next(irttp->tsaps)) { in irttp_seq_start()
1811 return self; in irttp_seq_start()
1831 const struct tsap_cb *self = v; in irttp_seq_show() local
1835 self->stsap_sel); in irttp_seq_show()
1837 self->dtsap_sel); in irttp_seq_show()
1839 self->connected ? "TRUE" : "FALSE"); in irttp_seq_show()
1841 self->avail_credit); in irttp_seq_show()
1843 self->remote_credit); in irttp_seq_show()
1845 self->send_credit); in irttp_seq_show()
1847 self->stats.tx_packets); in irttp_seq_show()
1849 self->stats.rx_packets); in irttp_seq_show()
1851 skb_queue_len(&self->tx_queue)); in irttp_seq_show()
1853 skb_queue_len(&self->rx_queue)); in irttp_seq_show()
1855 self->tx_sdu_busy ? "TRUE" : "FALSE"); in irttp_seq_show()
1857 self->rx_sdu_busy ? "TRUE" : "FALSE"); in irttp_seq_show()
1859 self->max_seg_size); in irttp_seq_show()
1861 self->tx_max_sdu_size); in irttp_seq_show()
1863 self->rx_max_sdu_size); in irttp_seq_show()
1866 self->notify.name); in irttp_seq_show()