Lines Matching refs:skb
42 static u8 ath6kl_ibss_map_epid(struct sk_buff *skb, struct net_device *dev, in ath6kl_ibss_map_epid() argument
51 datap = skb->data; in ath6kl_ibss_map_epid()
104 struct sk_buff *skb, in ath6kl_process_uapsdq() argument
109 struct ethhdr *datap = (struct ethhdr *) skb->data; in ath6kl_process_uapsdq()
158 skb_queue_tail(&conn->apsdq, skb); in ath6kl_process_uapsdq()
177 struct sk_buff *skb, in ath6kl_process_psq() argument
194 skb_queue_tail(&conn->psq, skb); in ath6kl_process_psq()
209 static bool ath6kl_powersave_ap(struct ath6kl_vif *vif, struct sk_buff *skb, in ath6kl_powersave_ap() argument
212 struct ethhdr *datap = (struct ethhdr *) skb->data; in ath6kl_powersave_ap()
239 skb_queue_tail(&ar->mcastpsq, skb); in ath6kl_powersave_ap()
267 dev_kfree_skb(skb); in ath6kl_powersave_ap()
275 vif, skb, flags); in ath6kl_powersave_ap()
278 vif, skb, flags); in ath6kl_powersave_ap()
286 int ath6kl_control_tx(void *devt, struct sk_buff *skb, in ath6kl_control_tx() argument
293 trace_ath6kl_wmi_cmd(skb->data, skb->len); in ath6kl_control_tx()
296 dev_kfree_skb(skb); in ath6kl_control_tx()
310 skb, skb->len, eid); in ath6kl_control_tx()
319 skb, skb->len); in ath6kl_control_tx()
337 cookie->skb = skb; in ath6kl_control_tx()
339 set_htc_pkt_info(&cookie->htc_pkt, cookie, skb->data, skb->len, in ath6kl_control_tx()
341 cookie->htc_pkt.skb = skb; in ath6kl_control_tx()
352 dev_kfree_skb(skb); in ath6kl_control_tx()
356 int ath6kl_data_tx(struct sk_buff *skb, struct net_device *dev) in ath6kl_data_tx() argument
369 u8 csum_start = 0, csum_dest = 0, csum = skb->ip_summed; in ath6kl_data_tx()
375 skb, skb->data, skb->len); in ath6kl_data_tx()
389 if (ath6kl_powersave_ap(vif, skb, &flags)) in ath6kl_data_tx()
396 csum_start = skb->csum_start - in ath6kl_data_tx()
397 (skb_network_header(skb) - skb->head) + in ath6kl_data_tx()
399 csum_dest = skb->csum_offset + csum_start; in ath6kl_data_tx()
402 if (skb_headroom(skb) < dev->needed_headroom) { in ath6kl_data_tx()
403 struct sk_buff *tmp_skb = skb; in ath6kl_data_tx()
405 skb = skb_realloc_headroom(skb, dev->needed_headroom); in ath6kl_data_tx()
407 if (skb == NULL) { in ath6kl_data_tx()
413 if (ath6kl_wmi_dix_2_dot3(ar->wmi, skb)) { in ath6kl_data_tx()
432 ret = ath6kl_wmi_data_hdr_add(ar->wmi, skb, in ath6kl_data_tx()
449 vif->fw_vif_idx, skb, in ath6kl_data_tx()
461 eid = ath6kl_ibss_map_epid(skb, dev, &map_no); in ath6kl_data_tx()
485 if (!IS_ALIGNED((unsigned long) skb->data - HTC_HDR_LENGTH, 4) && in ath6kl_data_tx()
486 skb_cloned(skb)) { in ath6kl_data_tx()
496 nskb = skb_copy_expand(skb, HTC_HDR_LENGTH, 0, GFP_ATOMIC); in ath6kl_data_tx()
499 kfree_skb(skb); in ath6kl_data_tx()
500 skb = nskb; in ath6kl_data_tx()
503 cookie->skb = skb; in ath6kl_data_tx()
505 set_htc_pkt_info(&cookie->htc_pkt, cookie, skb->data, skb->len, in ath6kl_data_tx()
507 cookie->htc_pkt.skb = skb; in ath6kl_data_tx()
510 skb->data, skb->len); in ath6kl_data_tx()
521 dev_kfree_skb(skb); in ath6kl_data_tx()
691 struct sk_buff *skb; in ath6kl_tx_complete() local
721 skb = ath6kl_cookie->skb; in ath6kl_tx_complete()
725 if (WARN_ON_ONCE(!skb || !skb->data)) { in ath6kl_tx_complete()
726 dev_kfree_skb(skb); in ath6kl_tx_complete()
731 __skb_queue_tail(&skb_queue, skb); in ath6kl_tx_complete()
733 if (WARN_ON_ONCE(!status && (packet->act_len != skb->len))) { in ath6kl_tx_complete()
777 __func__, skb, packet->buf, packet->act_len, in ath6kl_tx_complete()
782 __func__, skb, packet->buf, packet->act_len, in ath6kl_tx_complete()
787 vif->net_stats.tx_bytes += skb->len; in ath6kl_tx_complete()
833 struct sk_buff *skb) in ath6kl_deliver_frames_to_nw_stack() argument
835 if (!skb) in ath6kl_deliver_frames_to_nw_stack()
838 skb->dev = dev; in ath6kl_deliver_frames_to_nw_stack()
840 if (!(skb->dev->flags & IFF_UP)) { in ath6kl_deliver_frames_to_nw_stack()
841 dev_kfree_skb(skb); in ath6kl_deliver_frames_to_nw_stack()
845 skb->protocol = eth_type_trans(skb, skb->dev); in ath6kl_deliver_frames_to_nw_stack()
847 netif_rx_ni(skb); in ath6kl_deliver_frames_to_nw_stack()
852 struct sk_buff *skb; in ath6kl_alloc_netbufs() local
855 skb = ath6kl_buf_alloc(ATH6KL_BUFFER_SIZE); in ath6kl_alloc_netbufs()
856 if (!skb) { in ath6kl_alloc_netbufs()
860 skb_queue_tail(q, skb); in ath6kl_alloc_netbufs()
867 struct sk_buff *skb = NULL; in aggr_get_free_skb() local
874 skb = skb_dequeue(&p_aggr->rx_amsdu_freeq); in aggr_get_free_skb()
876 return skb; in aggr_get_free_skb()
882 struct sk_buff *skb; in ath6kl_rx_refill() local
901 skb = ath6kl_buf_alloc(ATH6KL_BUFFER_SIZE); in ath6kl_rx_refill()
902 if (!skb) in ath6kl_rx_refill()
905 packet = (struct htc_packet *) skb->head; in ath6kl_rx_refill()
906 if (!IS_ALIGNED((unsigned long) skb->data, 4)) { in ath6kl_rx_refill()
907 size_t len = skb_headlen(skb); in ath6kl_rx_refill()
908 skb->data = PTR_ALIGN(skb->data - 4, 4); in ath6kl_rx_refill()
909 skb_set_tail_pointer(skb, len); in ath6kl_rx_refill()
911 set_htc_rxpkt_info(packet, skb, skb->data, in ath6kl_rx_refill()
913 packet->skb = skb; in ath6kl_rx_refill()
924 struct sk_buff *skb; in ath6kl_refill_amsdu_rxbufs() local
927 skb = ath6kl_buf_alloc(ATH6KL_AMSDU_BUFFER_SIZE); in ath6kl_refill_amsdu_rxbufs()
928 if (!skb) in ath6kl_refill_amsdu_rxbufs()
931 packet = (struct htc_packet *) skb->head; in ath6kl_refill_amsdu_rxbufs()
932 if (!IS_ALIGNED((unsigned long) skb->data, 4)) { in ath6kl_refill_amsdu_rxbufs()
933 size_t len = skb_headlen(skb); in ath6kl_refill_amsdu_rxbufs()
934 skb->data = PTR_ALIGN(skb->data - 4, 4); in ath6kl_refill_amsdu_rxbufs()
935 skb_set_tail_pointer(skb, len); in ath6kl_refill_amsdu_rxbufs()
937 set_htc_rxpkt_info(packet, skb, skb->data, in ath6kl_refill_amsdu_rxbufs()
939 packet->skb = skb; in ath6kl_refill_amsdu_rxbufs()
996 struct rxtid *rxtid, struct sk_buff *skb) in aggr_slice_amsdu() argument
1004 framep = skb->data + mac_hdr_len; in aggr_slice_amsdu()
1005 amsdu_len = skb->len - mac_hdr_len; in aggr_slice_amsdu()
1048 dev_kfree_skb(skb); in aggr_slice_amsdu()
1054 struct sk_buff *skb; in aggr_deque_frms() local
1084 if ((order == 1) && (!node->skb)) in aggr_deque_frms()
1087 if (node->skb) { in aggr_deque_frms()
1090 node->skb); in aggr_deque_frms()
1092 skb_queue_tail(&rxtid->q, node->skb); in aggr_deque_frms()
1093 node->skb = NULL; in aggr_deque_frms()
1106 while ((skb = skb_dequeue(&rxtid->q))) in aggr_deque_frms()
1107 ath6kl_deliver_frames_to_nw_stack(agg_conn->dev, skb); in aggr_deque_frms()
1116 struct sk_buff *skb; in aggr_process_recv_frm() local
1132 while ((skb = skb_dequeue(&rxtid->q))) in aggr_process_recv_frm()
1134 skb); in aggr_process_recv_frm()
1196 dev_kfree_skb(node->skb); in aggr_process_recv_frm()
1199 node->skb = frame; in aggr_process_recv_frm()
1218 if (rxtid->hold_q[idx].skb) { in aggr_process_recv_frm()
1243 struct sk_buff *skb = NULL; in ath6kl_uapsd_trigger_frame_rx() local
1272 skb = skb_dequeue(&conn->apsdq); in ath6kl_uapsd_trigger_frame_rx()
1287 ath6kl_data_tx(skb, vif->ndev); in ath6kl_uapsd_trigger_frame_rx()
1309 struct sk_buff *skb = packet->pkt_cntxt; in ath6kl_rx() local
1329 __func__, ar, ept, skb, packet->buf, in ath6kl_rx()
1333 dev_kfree_skb(skb); in ath6kl_rx()
1337 skb_put(skb, packet->act_len + HTC_HDR_LENGTH); in ath6kl_rx()
1338 skb_pull(skb, HTC_HDR_LENGTH); in ath6kl_rx()
1341 skb->data, skb->len); in ath6kl_rx()
1346 ath6kl_wmi_control_rx(ar->wmi, skb); in ath6kl_rx()
1350 wmi_cmd_hdr_get_if_idx((struct wmi_cmd_hdr *) skb->data); in ath6kl_rx()
1353 wmi_data_hdr_get_if_idx((struct wmi_data_hdr *) skb->data); in ath6kl_rx()
1358 dev_kfree_skb(skb); in ath6kl_rx()
1373 skb->dev = vif->ndev; in ath6kl_rx()
1377 skb_pull(skb, EPPING_ALIGNMENT_PAD); in ath6kl_rx()
1378 ath6kl_deliver_frames_to_nw_stack(vif->ndev, skb); in ath6kl_rx()
1387 dhdr = (struct wmi_data_hdr *) skb->data; in ath6kl_rx()
1400 dev_kfree_skb(skb); in ath6kl_rx()
1427 datap = (struct ethhdr *) (skb->data + offset); in ath6kl_rx()
1431 dev_kfree_skb(skb); in ath6kl_rx()
1516 dev_kfree_skb(skb); in ath6kl_rx()
1530 skb_pull(skb, sizeof(struct wmi_data_hdr)); in ath6kl_rx()
1534 skb_pull(skb, sizeof(struct wmi_rx_meta_v1)); in ath6kl_rx()
1537 meta = (struct wmi_rx_meta_v2 *) skb->data; in ath6kl_rx()
1539 skb->ip_summed = CHECKSUM_COMPLETE; in ath6kl_rx()
1540 skb->csum = (__force __wsum) meta->csum; in ath6kl_rx()
1542 skb_pull(skb, sizeof(struct wmi_rx_meta_v2)); in ath6kl_rx()
1548 skb_pull(skb, pad_before_data_start); in ath6kl_rx()
1551 status = ath6kl_wmi_dot11_hdr_remove(ar->wmi, skb); in ath6kl_rx()
1553 status = ath6kl_wmi_dot3_2_dix(skb); in ath6kl_rx()
1560 dev_kfree_skb(skb); in ath6kl_rx()
1565 dev_kfree_skb(skb); in ath6kl_rx()
1570 datap = (struct ethhdr *) skb->data; in ath6kl_rx()
1576 skb1 = skb_copy(skb, GFP_ATOMIC); in ath6kl_rx()
1587 skb1 = skb; in ath6kl_rx()
1588 skb = NULL; in ath6kl_rx()
1590 dev_kfree_skb(skb); in ath6kl_rx()
1591 skb = NULL; in ath6kl_rx()
1597 if (skb == NULL) { in ath6kl_rx()
1603 datap = (struct ethhdr *) skb->data; in ath6kl_rx()
1616 is_amsdu, skb)) { in ath6kl_rx()
1624 ath6kl_deliver_frames_to_nw_stack(vif->ndev, skb); in ath6kl_rx()
1658 if (rxtid->hold_q[j].skb) { in aggr_timeout()