Hi Robin,
On Tue, Jul 12, 2016 at 12:42:59PM +0100, Robin Murphy wrote:
> Ah, that's the angle I was missing, yes. So if, say, someone is mapping
> a page at IOVA 0x while someone else is mapping a page at 0x1000,
> there could still be a race between both callers writing the non-leaf
> PTEs,
On 12/07/16 12:08, Joerg Roedel wrote:
> Hi Robin,
>
> On Tue, Jul 12, 2016 at 11:55:39AM +0100, Robin Murphy wrote:
>>> start = address;
>>> for (i = 0; i < pages; ++i) {
>>> - ret = dma_ops_domain_map(dma_dom, start, paddr, dir);
>>> - if (ret == DMA_ERROR_CODE)
>>> +
Hi Robin,
On Tue, Jul 12, 2016 at 11:55:39AM +0100, Robin Murphy wrote:
> > start = address;
> > for (i = 0; i < pages; ++i) {
> > - ret = dma_ops_domain_map(dma_dom, start, paddr, dir);
> > - if (ret == DMA_ERROR_CODE)
> > + ret = iommu_map_page(&dma_dom->dom
Hi Joerg,
On 08/07/16 12:44, Joerg Roedel wrote:
> From: Joerg Roedel
>
> Use the iommu-api map/unmap functions instead. This will be
> required anyway when IOVA code is used for address
> allocation.
>
> Signed-off-by: Joerg Roedel
> ---
> drivers/iommu/amd_iommu.c | 107
> ++---
From: Joerg Roedel
Use the iommu-api map/unmap functions instead. This will be
required anyway when IOVA code is used for address
allocation.
Signed-off-by: Joerg Roedel
---
drivers/iommu/amd_iommu.c | 107 ++
1 file changed, 14 insertions(+), 93 del