Lines Matching refs:skb
112 #define SHDLC_DUMP_SKB(info, skb) \ argument
116 16, 1, skb->data, skb->len, 0); \
140 struct sk_buff *skb; in llc_shdlc_alloc_skb() local
142 skb = alloc_skb(shdlc->tx_headroom + SHDLC_LLC_HEAD_ROOM + in llc_shdlc_alloc_skb()
144 if (skb) in llc_shdlc_alloc_skb()
145 skb_reserve(skb, shdlc->tx_headroom + SHDLC_LLC_HEAD_ROOM); in llc_shdlc_alloc_skb()
147 return skb; in llc_shdlc_alloc_skb()
155 struct sk_buff *skb; in llc_shdlc_send_s_frame() local
159 skb = llc_shdlc_alloc_skb(shdlc, 0); in llc_shdlc_send_s_frame()
160 if (skb == NULL) in llc_shdlc_send_s_frame()
163 *skb_push(skb, 1) = SHDLC_CONTROL_HEAD_S | (sframe_type << 3) | nr; in llc_shdlc_send_s_frame()
165 r = shdlc->xmit_to_drv(shdlc->hdev, skb); in llc_shdlc_send_s_frame()
167 kfree_skb(skb); in llc_shdlc_send_s_frame()
174 struct sk_buff *skb, in llc_shdlc_send_u_frame() argument
181 *skb_push(skb, 1) = SHDLC_CONTROL_HEAD_U | uframe_modifier; in llc_shdlc_send_u_frame()
183 r = shdlc->xmit_to_drv(shdlc->hdev, skb); in llc_shdlc_send_u_frame()
185 kfree_skb(skb); in llc_shdlc_send_u_frame()
196 struct sk_buff *skb; in llc_shdlc_reset_t2() local
204 skb = skb_dequeue(&shdlc->ack_pending_q); in llc_shdlc_reset_t2()
205 kfree_skb(skb); in llc_shdlc_reset_t2()
219 skb = skb_peek(&shdlc->ack_pending_q); in llc_shdlc_reset_t2()
221 mod_timer(&shdlc->t2_timer, *(unsigned long *)skb->cb + in llc_shdlc_reset_t2()
235 struct sk_buff *skb, int ns, int nr) in llc_shdlc_rcv_i_frame() argument
257 if (skb->len) { in llc_shdlc_rcv_i_frame()
258 shdlc->rcv_to_hci(shdlc->hdev, skb); in llc_shdlc_rcv_i_frame()
259 skb = NULL; in llc_shdlc_rcv_i_frame()
271 kfree_skb(skb); in llc_shdlc_rcv_i_frame()
286 struct sk_buff *skb; in llc_shdlc_requeue_ack_pending() local
290 while ((skb = skb_dequeue_tail(&shdlc->ack_pending_q))) { in llc_shdlc_requeue_ack_pending()
291 skb_pull(skb, 1); /* remove control field */ in llc_shdlc_requeue_ack_pending()
292 skb_queue_head(&shdlc->send_q, skb); in llc_shdlc_requeue_ack_pending()
299 struct sk_buff *skb; in llc_shdlc_rcv_rej() local
312 skb = skb_dequeue(&shdlc->ack_pending_q); in llc_shdlc_rcv_rej()
313 kfree_skb(skb); in llc_shdlc_rcv_rej()
325 struct sk_buff *skb; in llc_shdlc_rcv_s_frame() local
336 skb = llc_shdlc_alloc_skb(shdlc, 0); in llc_shdlc_rcv_s_frame()
337 if (skb) in llc_shdlc_rcv_s_frame()
338 skb_queue_tail(&shdlc->send_q, skb); in llc_shdlc_rcv_s_frame()
377 struct sk_buff *skb; in llc_shdlc_connect_initiate() local
381 skb = llc_shdlc_alloc_skb(shdlc, 2); in llc_shdlc_connect_initiate()
382 if (skb == NULL) in llc_shdlc_connect_initiate()
385 *skb_put(skb, 1) = SHDLC_MAX_WINDOW; in llc_shdlc_connect_initiate()
386 *skb_put(skb, 1) = SHDLC_SREJ_SUPPORT ? 1 : 0; in llc_shdlc_connect_initiate()
388 return llc_shdlc_send_u_frame(shdlc, skb, U_FRAME_RSET); in llc_shdlc_connect_initiate()
393 struct sk_buff *skb; in llc_shdlc_connect_send_ua() local
397 skb = llc_shdlc_alloc_skb(shdlc, 0); in llc_shdlc_connect_send_ua()
398 if (skb == NULL) in llc_shdlc_connect_send_ua()
401 return llc_shdlc_send_u_frame(shdlc, skb, U_FRAME_UA); in llc_shdlc_connect_send_ua()
405 struct sk_buff *skb, in llc_shdlc_rcv_u_frame() argument
423 if (skb->len > 0) in llc_shdlc_rcv_u_frame()
424 w = skb->data[0]; in llc_shdlc_rcv_u_frame()
426 if (skb->len > 1) in llc_shdlc_rcv_u_frame()
427 srej_support = skb->data[1] & 0x01 ? true : in llc_shdlc_rcv_u_frame()
467 kfree_skb(skb); in llc_shdlc_rcv_u_frame()
472 struct sk_buff *skb; in llc_shdlc_handle_rcv_queue() local
482 while ((skb = skb_dequeue(&shdlc->rcv_q)) != NULL) { in llc_shdlc_handle_rcv_queue()
483 control = skb->data[0]; in llc_shdlc_handle_rcv_queue()
484 skb_pull(skb, 1); in llc_shdlc_handle_rcv_queue()
493 llc_shdlc_rcv_i_frame(shdlc, skb, ns, nr); in llc_shdlc_handle_rcv_queue()
502 kfree_skb(skb); in llc_shdlc_handle_rcv_queue()
506 llc_shdlc_rcv_u_frame(shdlc, skb, u_frame_modifier); in llc_shdlc_handle_rcv_queue()
510 kfree_skb(skb); in llc_shdlc_handle_rcv_queue()
531 struct sk_buff *skb; in llc_shdlc_handle_send_queue() local
552 skb = skb_dequeue(&shdlc->send_q); in llc_shdlc_handle_send_queue()
554 *skb_push(skb, 1) = SHDLC_CONTROL_HEAD_I | (shdlc->ns << 3) | in llc_shdlc_handle_send_queue()
559 SHDLC_DUMP_SKB("shdlc frame written", skb); in llc_shdlc_handle_send_queue()
561 r = shdlc->xmit_to_drv(shdlc->hdev, skb); in llc_shdlc_handle_send_queue()
570 *(unsigned long *)skb->cb = time_sent; in llc_shdlc_handle_send_queue()
572 skb_queue_tail(&shdlc->ack_pending_q, skb); in llc_shdlc_handle_send_queue()
736 static void llc_shdlc_recv_frame(struct llc_shdlc *shdlc, struct sk_buff *skb) in llc_shdlc_recv_frame() argument
738 if (skb == NULL) { in llc_shdlc_recv_frame()
742 SHDLC_DUMP_SKB("incoming frame", skb); in llc_shdlc_recv_frame()
743 skb_queue_tail(&shdlc->rcv_q, skb); in llc_shdlc_recv_frame()
824 static void llc_shdlc_rcv_from_drv(struct nfc_llc *llc, struct sk_buff *skb) in llc_shdlc_rcv_from_drv() argument
828 llc_shdlc_recv_frame(shdlc, skb); in llc_shdlc_rcv_from_drv()
831 static int llc_shdlc_xmit_from_hci(struct nfc_llc *llc, struct sk_buff *skb) in llc_shdlc_xmit_from_hci() argument
835 skb_queue_tail(&shdlc->send_q, skb); in llc_shdlc_xmit_from_hci()