| 1473 | } |
| 1474 | |
| 1475 | void |
| 1476 | iflib_dma_free(iflib_dma_info_t dma) |
| 1477 | { |
| 1478 | if (dma->idi_tag == NULL) |
| 1479 | return; |
| 1480 | if (dma->idi_paddr != IF_BAD_DMA) { |
| 1481 | bus_dmamap_sync(dma->idi_tag, dma->idi_map, |
| 1482 | BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); |
| 1483 | bus_dmamap_unload(dma->idi_tag, dma->idi_map); |
| 1484 | dma->idi_paddr = IF_BAD_DMA; |
| 1485 | } |
| 1486 | if (dma->idi_vaddr != NULL) { |
| 1487 | bus_dmamem_free(dma->idi_tag, dma->idi_vaddr, dma->idi_map); |
| 1488 | dma->idi_vaddr = NULL; |
| 1489 | } |
| 1490 | bus_dma_tag_destroy(dma->idi_tag); |
| 1491 | dma->idi_tag = NULL; |
| 1492 | } |
| 1493 | |
| 1494 | void |
| 1495 | iflib_dma_free_multi(iflib_dma_info_t *dmalist, int count) |
no test coverage detected