| 1817 | } |
| 1818 | |
| 1819 | static void |
| 1820 | iflib_txsd_free(if_ctx_t ctx, iflib_txq_t txq, int i) |
| 1821 | { |
| 1822 | struct mbuf **mp; |
| 1823 | |
| 1824 | mp = &txq->ift_sds.ifsd_m[i]; |
| 1825 | if (*mp == NULL) |
| 1826 | return; |
| 1827 | |
| 1828 | if (txq->ift_sds.ifsd_map != NULL) { |
| 1829 | bus_dmamap_sync(txq->ift_buf_tag, |
| 1830 | txq->ift_sds.ifsd_map[i], BUS_DMASYNC_POSTWRITE); |
| 1831 | bus_dmamap_unload(txq->ift_buf_tag, txq->ift_sds.ifsd_map[i]); |
| 1832 | } |
| 1833 | if (txq->ift_sds.ifsd_tso_map != NULL) { |
| 1834 | bus_dmamap_sync(txq->ift_tso_buf_tag, |
| 1835 | txq->ift_sds.ifsd_tso_map[i], BUS_DMASYNC_POSTWRITE); |
| 1836 | bus_dmamap_unload(txq->ift_tso_buf_tag, |
| 1837 | txq->ift_sds.ifsd_tso_map[i]); |
| 1838 | } |
| 1839 | m_freem(*mp); |
| 1840 | DBG_COUNTER_INC(tx_frees); |
| 1841 | *mp = NULL; |
| 1842 | } |
| 1843 | |
| 1844 | static int |
| 1845 | iflib_txq_setup(iflib_txq_t txq) |
no test coverage detected