/** * fm10k_clean_all_tx_rings - Free Tx Buffers for all queues * @interface: board private structure **/ void fm10k_clean_all_tx_rings(struct fm10k_intfc *interface) { int i; for (i = 0; i < interface->num_tx_queues; i++) fm10k_clean_tx_ring(interface->tx_ring[i]); }
/** * fm10k_clean_all_tx_rings - Free Tx Buffers for all queues * @interface: board private structure **/ void fm10k_clean_all_tx_rings(struct fm10k_intfc *interface) { int i; for (i = 0; i < interface->num_tx_queues; i++) fm10k_clean_tx_ring(interface->tx_ring[i]); /* remove any stale timestamp buffers and free them */ skb_queue_purge(&interface->ts_tx_skb_queue); }
/** * fm10k_free_tx_resources - Free Tx Resources per Queue * @tx_ring: Tx descriptor ring for a specific queue * * Free all transmit software resources **/ void fm10k_free_tx_resources(struct fm10k_ring *tx_ring) { fm10k_clean_tx_ring(tx_ring); vfree(tx_ring->tx_buffer); tx_ring->tx_buffer = NULL; /* if not set, then don't free */ if (!tx_ring->desc) return; dma_free_coherent(tx_ring->dev, tx_ring->size, tx_ring->desc, tx_ring->dma); tx_ring->desc = NULL; }