Lines Matching defs:mapping
309 * viommu_add_mapping - add a mapping to the internal tree
311 * On success, return the new mapping. Otherwise return NULL.
317 struct viommu_mapping *mapping;
319 mapping = kzalloc(sizeof(*mapping), GFP_ATOMIC);
320 if (!mapping)
323 mapping->paddr = paddr;
324 mapping->iova.start = iova;
325 mapping->iova.last = end;
326 mapping->flags = flags;
329 interval_tree_insert(&mapping->iova, &vdomain->mappings);
349 struct viommu_mapping *mapping = NULL;
356 mapping = container_of(node, struct viommu_mapping, iova);
359 /* Trying to split a mapping? */
360 if (mapping->iova.start < iova)
364 * Virtio-iommu doesn't allow UNMAP to split a mapping created
365 * with a single MAP request, so remove the full mapping.
367 unmapped += mapping->iova.last - mapping->iova.start + 1;
370 kfree(mapping);
437 struct viommu_mapping *mapping;
444 mapping = container_of(node, struct viommu_mapping, iova);
448 .virt_start = cpu_to_le64(mapping->iova.start),
449 .virt_end = cpu_to_le64(mapping->iova.last),
450 .phys_start = cpu_to_le64(mapping->paddr),
451 .flags = cpu_to_le32(mapping->flags),
892 struct viommu_mapping *mapping;
899 mapping = container_of(node, struct viommu_mapping, iova);
900 paddr = mapping->paddr + (iova - mapping->iova.start);