A common software error when it comes to page table code is missing TLB maintenance. Add some checks to the io-pgtable-fast code to detect when an address that might be stale in the TLB is being re-used. This can be accomplished by writing a "stale TLB" flag value to the reserved bits of the PTE during unmap and then removing the flag value when the TLBs are invalidated (by sweeping the entire page table). That way, whenever we map we can know that there might be a stale TLB in the location being mapped into if it contains the "stale TLB" flag value. CRs-Fixed: 997751 Change-Id: Icf9c1e41977cb71e8b137190adb3b4a201c339da Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org> |
||
---|---|---|
.. | ||
amd_iommu.c | ||
amd_iommu_init.c | ||
amd_iommu_proto.h | ||
amd_iommu_types.h | ||
amd_iommu_v2.c | ||
arm-smmu-v3.c | ||
arm-smmu.c | ||
dma-iommu.c | ||
dma-mapping-fast.c | ||
dmar.c | ||
exynos-iommu.c | ||
fsl_pamu.c | ||
fsl_pamu.h | ||
fsl_pamu_domain.c | ||
fsl_pamu_domain.h | ||
intel-iommu.c | ||
intel-svm.c | ||
intel_irq_remapping.c | ||
io-pgtable-arm.c | ||
io-pgtable-fast.c | ||
io-pgtable-msm-secure.c | ||
io-pgtable.c | ||
io-pgtable.h | ||
iommu-debug.c | ||
iommu-debug.h | ||
iommu-sysfs.c | ||
iommu-traces.c | ||
iommu.c | ||
iova.c | ||
ipmmu-vmsa.c | ||
irq_remapping.c | ||
irq_remapping.h | ||
Kconfig | ||
Makefile | ||
msm_dma_iommu_mapping.c | ||
of_iommu.c | ||
omap-iommu-debug.c | ||
omap-iommu.c | ||
omap-iommu.h | ||
omap-iopgtable.h | ||
rockchip-iommu.c | ||
s390-iommu.c | ||
shmobile-iommu.c | ||
shmobile-ipmmu.c | ||
shmobile-ipmmu.h | ||
tegra-gart.c | ||
tegra-smmu.c |