Re: [PATCH] iommu: Limit the IOVA page range to the specified addresses

From: Gary R Hook
Date: Fri Oct 27 2017 - 11:20:42 EST


On 10/26/2017 03:32 AM, Alex Williamson wrote:
On Tue, 17 Oct 2017 16:22:01 -0500
Gary R Hook <gary.hook@xxxxxxx> wrote:

From: amd <amd@xxxxxxxxxxxxxxx>

The extent of pages specified when applying a reserved region should
include up to the last page of the range, but not the page following
the range.

Signed-off-by: Gary R Hook <gary.hook@xxxxxxx>
---
drivers/iommu/amd_iommu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index 27eb0d6fcdc2..bb3ef33e3784 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -3271,7 +3271,7 @@ static void amd_iommu_apply_resv_region(struct device *dev,
unsigned long start, end;
start = IOVA_PFN(region->start);
- end = IOVA_PFN(region->start + region->length);
+ end = IOVA_PFN(region->start + region->length - 1);
WARN_ON_ONCE(reserve_iova(&dma_dom->iovad, start, end) == NULL);
}

This looks like a fix, should we include:

Fixes: 8d54d6c8b8f3 ('iommu/amd: Implement apply_dm_region call-back')

It turns out there are other places where the computation is incorrect.
Would you prefer a single patch to address all of them, or separate
patches that apply to specific areas of the driver?