]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/iommu/io-pgtable-arm-v7s.c
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
[linux.git] / drivers / iommu / io-pgtable-arm-v7s.c
index af330f513653d2849682b2d4536dd86dcb6a43d7..d665d0dc16e8f787813a6106d15bd83afacc4f34 100644 (file)
@@ -479,6 +479,9 @@ static int arm_v7s_map(struct io_pgtable_ops *ops, unsigned long iova,
        if (!(prot & (IOMMU_READ | IOMMU_WRITE)))
                return 0;
 
+       if (WARN_ON(upper_32_bits(iova) || upper_32_bits(paddr)))
+               return -ERANGE;
+
        ret = __arm_v7s_map(data, iova, paddr, size, prot, 1, data->pgd);
        /*
         * Synchronise all PTE updates for the new mapping before there's
@@ -659,6 +662,9 @@ static int arm_v7s_unmap(struct io_pgtable_ops *ops, unsigned long iova,
        struct arm_v7s_io_pgtable *data = io_pgtable_ops_to_data(ops);
        size_t unmapped;
 
+       if (WARN_ON(upper_32_bits(iova)))
+               return 0;
+
        unmapped = __arm_v7s_unmap(data, iova, size, 1, data->pgd);
        if (unmapped)
                io_pgtable_tlb_sync(&data->iop);