Lines Matching refs:skb
37 struct sk_buff *skb, *tmp; in mwifiex_uap_del_tx_pkts_in_ralist() local
46 skb_queue_walk_safe(&ra_list->skb_head, skb, tmp) { in mwifiex_uap_del_tx_pkts_in_ralist()
47 tx_info = MWIFIEX_SKB_TXCB(skb); in mwifiex_uap_del_tx_pkts_in_ralist()
49 __skb_unlink(skb, &ra_list->skb_head); in mwifiex_uap_del_tx_pkts_in_ralist()
50 mwifiex_write_data_complete(adapter, skb, 0, in mwifiex_uap_del_tx_pkts_in_ralist()
91 struct sk_buff *skb) in mwifiex_uap_queue_bridged_pkt() argument
101 uap_rx_pd = (struct uap_rxpd *)(skb->data); in mwifiex_uap_queue_bridged_pkt()
108 kfree_skb(skb); in mwifiex_uap_queue_bridged_pkt()
153 skb_pull(skb, hdr_chop); in mwifiex_uap_queue_bridged_pkt()
155 if (skb_headroom(skb) < MWIFIEX_MIN_DATA_HEADER_LEN) { in mwifiex_uap_queue_bridged_pkt()
158 skb_headroom(skb)); in mwifiex_uap_queue_bridged_pkt()
161 skb_realloc_headroom(skb, MWIFIEX_MIN_DATA_HEADER_LEN); in mwifiex_uap_queue_bridged_pkt()
165 kfree_skb(skb); in mwifiex_uap_queue_bridged_pkt()
170 kfree_skb(skb); in mwifiex_uap_queue_bridged_pkt()
171 skb = new_skb; in mwifiex_uap_queue_bridged_pkt()
173 skb_headroom(skb)); in mwifiex_uap_queue_bridged_pkt()
176 tx_info = MWIFIEX_SKB_TXCB(skb); in mwifiex_uap_queue_bridged_pkt()
186 priv->stats.rx_bytes += skb->len; in mwifiex_uap_queue_bridged_pkt()
192 tx_info->pkt_len = skb->len; in mwifiex_uap_queue_bridged_pkt()
195 __net_timestamp(skb); in mwifiex_uap_queue_bridged_pkt()
196 mwifiex_wmm_add_buf_txqueue(priv, skb); in mwifiex_uap_queue_bridged_pkt()
215 struct sk_buff *skb) in mwifiex_handle_uap_rx_forward() argument
223 uap_rx_pd = (struct uap_rxpd *)(skb->data); in mwifiex_handle_uap_rx_forward()
229 dev_kfree_skb_any(skb); in mwifiex_handle_uap_rx_forward()
236 skb_uap = skb_copy(skb, GFP_ATOMIC); in mwifiex_handle_uap_rx_forward()
241 mwifiex_uap_queue_bridged_pkt(priv, skb); in mwifiex_handle_uap_rx_forward()
247 return mwifiex_process_rx_packet(priv, skb); in mwifiex_handle_uap_rx_forward()
261 struct sk_buff *skb) in mwifiex_process_uap_rx_packet() argument
272 uap_rx_pd = (struct uap_rxpd *)(skb->data); in mwifiex_process_uap_rx_packet()
277 le16_to_cpu(uap_rx_pd->rx_pkt_length)) > (u16) skb->len) { in mwifiex_process_uap_rx_packet()
280 skb->len, le16_to_cpu(uap_rx_pd->rx_pkt_offset), in mwifiex_process_uap_rx_packet()
283 dev_kfree_skb_any(skb); in mwifiex_process_uap_rx_packet()
288 ret = mwifiex_process_mgmt_packet(priv, skb); in mwifiex_process_uap_rx_packet()
291 dev_kfree_skb_any(skb); in mwifiex_process_uap_rx_packet()
309 ret = mwifiex_handle_uap_rx_forward(priv, skb); in mwifiex_process_uap_rx_packet()
317 skb); in mwifiex_process_uap_rx_packet()
320 dev_kfree_skb_any(skb); in mwifiex_process_uap_rx_packet()
346 struct sk_buff *skb) in mwifiex_process_uap_txpd() argument
350 struct mwifiex_txinfo *tx_info = MWIFIEX_SKB_TXCB(skb); in mwifiex_process_uap_txpd()
356 if (!skb->len) { in mwifiex_process_uap_txpd()
357 dev_err(adapter->dev, "Tx: bad packet length: %d\n", skb->len); in mwifiex_process_uap_txpd()
359 return skb->data; in mwifiex_process_uap_txpd()
362 BUG_ON(skb_headroom(skb) < MWIFIEX_MIN_DATA_HEADER_LEN); in mwifiex_process_uap_txpd()
364 pkt_type = mwifiex_is_skb_mgmt_frame(skb) ? PKT_TYPE_MGMT : 0; in mwifiex_process_uap_txpd()
366 pad = ((void *)skb->data - (sizeof(*txpd) + hroom) - NULL) & in mwifiex_process_uap_txpd()
369 skb_push(skb, sizeof(*txpd) + pad); in mwifiex_process_uap_txpd()
371 txpd = (struct uap_txpd *)skb->data; in mwifiex_process_uap_txpd()
375 txpd->tx_pkt_length = cpu_to_le16((u16)(skb->len - (sizeof(*txpd) + in mwifiex_process_uap_txpd()
377 txpd->priority = (u8)skb->priority; in mwifiex_process_uap_txpd()
379 txpd->pkt_delay_2ms = mwifiex_wmm_compute_drv_pkt_delay(priv, skb); in mwifiex_process_uap_txpd()
406 skb_push(skb, hroom); in mwifiex_process_uap_txpd()
412 return skb->data; in mwifiex_process_uap_txpd()