bounce_skb
struct sk_buff *bounce_skb;
bounce_skb = alloc_skb(len, GFP_ATOMIC | GFP_DMA);
if (!bounce_skb)
mapping = dma_map_single(bp->sdev->dma_dev, bounce_skb->data,
dev_kfree_skb_any(bounce_skb);
skb_copy_from_linear_data(skb, skb_put(bounce_skb, len), len);
skb = bounce_skb;
struct sk_buff *bounce_skb;
bounce_skb = alloc_skb(skb->len, GFP_KERNEL | GFP_DMA);
if (!bounce_skb) {
skb_put_data(bounce_skb, skb->data, skb->len);
memcpy(bounce_skb->cb, skb->cb, sizeof(skb->cb));
bounce_skb->dev = skb->dev;
skb_set_queue_mapping(bounce_skb, skb_get_queue_mapping(skb));
info = IEEE80211_SKB_CB(bounce_skb);
skb = bounce_skb;
*in_skb = bounce_skb;
nskb = bounce_skb(skb);