mirror of https://gitee.com/openkylin/linux.git
iommu/io-pgtable-arm-v7s: Add support for the IOMMU_PRIV flag
The short-descriptor format also allows privileged-only mappings, so let's wire it up. Signed-off-by: Robin Murphy <robin.murphy@arm.com> Tested-by: Sricharan R <sricharan@codeaurora.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
This commit is contained in:
parent
e7468a23da
commit
5baf1e9d0b
|
@ -265,7 +265,9 @@ static arm_v7s_iopte arm_v7s_prot_to_pte(int prot, int lvl,
|
|||
if (!(prot & IOMMU_MMIO))
|
||||
pte |= ARM_V7S_ATTR_TEX(1);
|
||||
if (ap) {
|
||||
pte |= ARM_V7S_PTE_AF | ARM_V7S_PTE_AP_UNPRIV;
|
||||
pte |= ARM_V7S_PTE_AF;
|
||||
if (!(prot & IOMMU_PRIV))
|
||||
pte |= ARM_V7S_PTE_AP_UNPRIV;
|
||||
if (!(prot & IOMMU_WRITE))
|
||||
pte |= ARM_V7S_PTE_AP_RDONLY;
|
||||
}
|
||||
|
@ -288,6 +290,8 @@ static int arm_v7s_pte_to_prot(arm_v7s_iopte pte, int lvl)
|
|||
|
||||
if (!(attr & ARM_V7S_PTE_AP_RDONLY))
|
||||
prot |= IOMMU_WRITE;
|
||||
if (!(attr & ARM_V7S_PTE_AP_UNPRIV))
|
||||
prot |= IOMMU_PRIV;
|
||||
if ((attr & (ARM_V7S_TEX_MASK << ARM_V7S_TEX_SHIFT)) == 0)
|
||||
prot |= IOMMU_MMIO;
|
||||
else if (pte & ARM_V7S_ATTR_C)
|
||||
|
|
Loading…
Reference in New Issue