Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aca1bc45 authored by Bin Wang's avatar Bin Wang Committed by Will Deacon
Browse files

iommu/arm-smmu: fix panic in arm_smmu_alloc_init_pte



kernel panic happened when iommu_unmap a buffer larger than 2MB,
more than expected pmd entries got “invalidated”, due to a wrong range
passed to arm_smmu_alloc_init_pte. it was likely a typo, now we fix
it, passing the correct "end" address to arm_smmu_alloc_init_pte.

Signed-off-by: default avatarBin Wang <binw@marvell.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent 16c50dcf
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1381,7 +1381,7 @@ static int arm_smmu_alloc_init_pmd(struct arm_smmu_device *smmu, pud_t *pud,

	do {
		next = pmd_addr_end(addr, end);
		ret = arm_smmu_alloc_init_pte(smmu, pmd, addr, end, pfn,
		ret = arm_smmu_alloc_init_pte(smmu, pmd, addr, next, pfn,
					      prot, stage);
		phys += next - addr;
	} while (pmd++, addr = next, addr < end);