|
@@ -486,11 +486,13 @@ static int __arm_lpae_unmap(struct arm_lpae_io_pgtable *data,
|
|
|
void *cookie = data->iop.cookie;
|
|
|
size_t blk_size = ARM_LPAE_BLOCK_SIZE(lvl, data);
|
|
|
|
|
|
+ /* Something went horribly wrong and we ran out of page table */
|
|
|
+ if (WARN_ON(lvl == ARM_LPAE_MAX_LEVELS))
|
|
|
+ return 0;
|
|
|
+
|
|
|
ptep += ARM_LPAE_LVL_IDX(iova, lvl, data);
|
|
|
pte = *ptep;
|
|
|
-
|
|
|
- /* Something went horribly wrong and we ran out of page table */
|
|
|
- if (WARN_ON(!pte || (lvl == ARM_LPAE_MAX_LEVELS)))
|
|
|
+ if (WARN_ON(!pte))
|
|
|
return 0;
|
|
|
|
|
|
/* If the size matches this level, we're in the right place */
|