Displaying 8 results from an estimated 8 matches for "err_rollback".
Did you mean:
err_callback
2017 Oct 09
0
[virtio-dev] [RFC] virtio-iommu version 0.4
...-679,6 +704,7 @@ static size_t viommu_map_sg(struct iommu_domain *domain, unsigned long iova,
if (ret) {
viommu_tlb_unmap(vdomain, iova, total_size);
+ kfree(map_reqs);
return 0;
}
@@ -692,6 +718,7 @@ static size_t viommu_map_sg(struct iommu_domain *domain, unsigned long iova,
goto err_rollback;
}
+ kfree(map_reqs);
return total_size;
err_rollback:
@@ -719,6 +746,7 @@ static size_t viommu_map_sg(struct iommu_domain *domain, unsigned long iova,
}
viommu_tlb_unmap(vdomain, iova, total_size);
+ kfree(map_reqs);
return 0;
}
@@ -863,6 +891,8 @@ static int viommu_probe_device(st...
2017 Apr 07
0
[RFC PATCH linux] iommu: Add virtio-iommu driver
...sg_init_one(&reqs[i].tail, tail, tail_size);
+
+ cur_iova += size;
+ }
+
+ total_size = cur_iova - iova;
+
+ if (ret) {
+ viommu_tlb_unmap(vdomain, iova, total_size);
+ return 0;
+ }
+
+ ret = viommu_send_reqs_sync(vdomain->viommu, reqs, i, &nr_sent);
+
+ if (nr_sent != nents)
+ goto err_rollback;
+
+ for (i = 0; i < nents; i++) {
+ if (!reqs[i].written || map_reqs[i].tail.status)
+ goto err_rollback;
+ }
+
+ return total_size;
+
+err_rollback:
+ /*
+ * Any request in the range might have failed. Unmap what was
+ * successful.
+ */
+ cur_iova = iova;
+ mapped_iova = iova;
+ mapped...
2017 Jun 16
1
[virtio-dev] [RFC PATCH linux] iommu: Add virtio-iommu driver
...;
> + }
> +
> + total_size = cur_iova - iova;
> +
> + if (ret) {
> + viommu_tlb_unmap(vdomain, iova, total_size);
> + return 0;
> + }
> +
> + ret = viommu_send_reqs_sync(vdomain->viommu, reqs, i,
> &nr_sent);
> +
> + if (nr_sent != nents)
> + goto err_rollback;
> +
> + for (i = 0; i < nents; i++) {
> + if (!reqs[i].written || map_reqs[i].tail.status)
> + goto err_rollback;
> + }
> +
> + return total_size;
> +
> +err_rollback:
> + /*
> + * Any request in the range might have failed. Unmap what was
> + * successf...
2017 Jun 16
1
[virtio-dev] [RFC PATCH linux] iommu: Add virtio-iommu driver
...;
> + }
> +
> + total_size = cur_iova - iova;
> +
> + if (ret) {
> + viommu_tlb_unmap(vdomain, iova, total_size);
> + return 0;
> + }
> +
> + ret = viommu_send_reqs_sync(vdomain->viommu, reqs, i,
> &nr_sent);
> +
> + if (nr_sent != nents)
> + goto err_rollback;
> +
> + for (i = 0; i < nents; i++) {
> + if (!reqs[i].written || map_reqs[i].tail.status)
> + goto err_rollback;
> + }
> +
> + return total_size;
> +
> +err_rollback:
> + /*
> + * Any request in the range might have failed. Unmap what was
> + * successf...
2017 Aug 04
7
[RFC] virtio-iommu version 0.4
This is the continuation of my proposal for virtio-iommu, the para-
virtualized IOMMU. Here is a summary of the changes since last time [1]:
* The virtio-iommu document now resembles an actual specification. It is
split into a formal description of the virtio device, and implementation
notes. Please find sources and binaries at [2].
* Added a probe request to describe to the guest different
2017 Aug 04
7
[RFC] virtio-iommu version 0.4
This is the continuation of my proposal for virtio-iommu, the para-
virtualized IOMMU. Here is a summary of the changes since last time [1]:
* The virtio-iommu document now resembles an actual specification. It is
split into a formal description of the virtio device, and implementation
notes. Please find sources and binaries at [2].
* Added a probe request to describe to the guest different
2017 Apr 07
34
[RFC 0/3] virtio-iommu: a paravirtualized IOMMU
This is the initial proposal for a paravirtualized IOMMU device using
virtio transport. It contains a description of the device, a Linux driver,
and a toy implementation in kvmtool. With this prototype, you can
translate DMA to guest memory from emulated (virtio), or passed-through
(VFIO) devices.
In its simplest form, implemented here, the device handles map/unmap
requests from the guest. Future
2017 Apr 07
34
[RFC 0/3] virtio-iommu: a paravirtualized IOMMU
This is the initial proposal for a paravirtualized IOMMU device using
virtio transport. It contains a description of the device, a Linux driver,
and a toy implementation in kvmtool. With this prototype, you can
translate DMA to guest memory from emulated (virtio), or passed-through
(VFIO) devices.
In its simplest form, implemented here, the device handles map/unmap
requests from the guest. Future