iommu/s390: Fix incorrect aperture check
authorNiklas Schnelle <schnelle@linux.ibm.com>
Tue, 25 Oct 2022 11:56:55 +0000 (13:56 +0200)
committerJoerg Roedel <jroedel@suse.de>
Thu, 3 Nov 2022 14:40:54 +0000 (15:40 +0100)
The domain->geometry.aperture_end specifies the last valid address treat
it as such when checking if a DMA address is valid.

Reviewed-by: Pierre Morel <pmorel@linux.ibm.com>
Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Link: https://lore.kernel.org/r/20221025115657.1666860-5-schnelle@linux.ibm.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/s390-iommu.c

index 9b3adc6..3e601ca 100644 (file)
@@ -213,7 +213,7 @@ static int s390_iommu_update_trans(struct s390_domain *s390_domain,
        int rc = 0;
 
        if (dma_addr < s390_domain->domain.geometry.aperture_start ||
-           dma_addr + size > s390_domain->domain.geometry.aperture_end)
+           (dma_addr + size - 1) > s390_domain->domain.geometry.aperture_end)
                return -EINVAL;
 
        nr_pages = PAGE_ALIGN(size) >> PAGE_SHIFT;