diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2017-04-03 01:06:59 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2017-04-03 01:06:59 -0400 |
commit | a8e28440016bfb23bec266c4c66eacca6ea2d48b (patch) | |
tree | 27d528294f7886c434c8072a034d211acc06d077 /drivers/iommu/io-pgtable-arm.c | |
parent | 2b5efc089769cd2aa583880d29416d00e7441f39 (diff) | |
parent | 3209f68b3ca4667069923a325c88b21131bfdf9f (diff) | |
download | linux-a8e28440016bfb23bec266c4c66eacca6ea2d48b.tar.bz2 |
Merge branch 'work.statx' into for-next
Diffstat (limited to 'drivers/iommu/io-pgtable-arm.c')
-rw-r--r-- | drivers/iommu/io-pgtable-arm.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c index feacc54bec68..f9bc6ebb8140 100644 --- a/drivers/iommu/io-pgtable-arm.c +++ b/drivers/iommu/io-pgtable-arm.c @@ -335,8 +335,12 @@ static int __arm_lpae_map(struct arm_lpae_io_pgtable *data, unsigned long iova, if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_NS) pte |= ARM_LPAE_PTE_NSTABLE; __arm_lpae_set_pte(ptep, pte, cfg); - } else { + } else if (!iopte_leaf(pte, lvl)) { cptep = iopte_deref(pte, data); + } else { + /* We require an unmap first */ + WARN_ON(!selftest_running); + return -EEXIST; } /* Rinse, repeat */ |