| 824 | } |
| 825 | |
| 826 | int |
| 827 | rte_dev_dma_unmap(struct rte_device *dev, void *addr, uint64_t iova, |
| 828 | size_t len) |
| 829 | { |
| 830 | if (dev->bus->dma_unmap == NULL || len == 0) { |
| 831 | rte_errno = ENOTSUP; |
| 832 | return -1; |
| 833 | } |
| 834 | /* Memory must be registered through rte_extmem_* APIs */ |
| 835 | if (rte_mem_virt2memseg_list(addr) == NULL) { |
| 836 | rte_errno = EINVAL; |
| 837 | return -1; |
| 838 | } |
| 839 | |
| 840 | return dev->bus->dma_unmap(dev, addr, iova, len); |
| 841 | } |