static void rmnet_mhi_internal_clean_unmap_buffers(struct net_device *dev, struct sk_buff_head *queue, enum dma_data_direction dir) { struct rmnet_mhi_private *rmnet_mhi_ptr = *(struct rmnet_mhi_private **)netdev_priv(dev); rmnet_log(MSG_INFO, "Entered\n"); while (!skb_queue_empty(queue)) { struct sk_buff *skb = skb_dequeue(queue); if (skb != 0) { dma_addr_t dma_addr = rmnet_mhi_internal_get_dma_addr(skb, dir); if (dir == DMA_FROM_DEVICE) dma_unmap_single(&(dev->dev), dma_addr, (rmnet_mhi_ptr->mru - MHI_RX_HEADROOM), dir); else dma_unmap_single(&(dev->dev), dma_addr, skb->len, dir); kfree_skb(skb); } } rmnet_log(MSG_INFO, "Exited\n"); }
static void rmnet_mhi_internal_clean_unmap_buffers(struct net_device *dev, struct sk_buff_head *queue, enum dma_data_direction dir) { while (!skb_queue_empty(queue)) { struct sk_buff *skb = skb_dequeue(queue); if (0 != skb) { dma_addr_t dma_addr = rmnet_mhi_internal_get_dma_addr(skb, dir); dma_unmap_single(&(dev->dev), dma_addr, skb->len, dir); kfree_skb(skb); } } }