summaryrefslogtreecommitdiff
path: root/drivers/iommu/samsung-iommu-fault.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/iommu/samsung-iommu-fault.c')
-rw-r--r--drivers/iommu/samsung-iommu-fault.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/iommu/samsung-iommu-fault.c b/drivers/iommu/samsung-iommu-fault.c
index 2a2a17d35..405987223 100644
--- a/drivers/iommu/samsung-iommu-fault.c
+++ b/drivers/iommu/samsung-iommu-fault.c
@@ -354,7 +354,7 @@ static void sysmmu_show_secure_fault_information(struct sysmmu_drvdata *drvdata,
char err_msg[128];
pgtable = read_sec_info(MMU_SEC_REG(drvdata, IDX_SEC_FLPT_BASE));
- pgtable <<= PAGE_SHIFT;
+ pgtable <<= PT_BASE_SHIFT;
info = read_sec_info(MMU_SEC_REG(drvdata, IDX_FAULT_TRANS_INFO));
@@ -372,8 +372,7 @@ static void sysmmu_show_secure_fault_information(struct sysmmu_drvdata *drvdata,
}
pr_crit("AxID: %#x, AxLEN: %#x\n", info & 0xFFFF, (info >> 16) & 0xF);
-
- if (!pfn_valid(pgtable >> PAGE_SHIFT)) {
+ if (!pfn_valid(PFN_DOWN(pgtable))) {
pr_crit("Page table base is not in a valid memory region\n");
pgtable = 0;
}
@@ -422,7 +421,7 @@ static void sysmmu_show_fault_information(struct sysmmu_drvdata *drvdata,
for (i = 0; i < __max_vids(drvdata); i++) {
pgtable[i] = readl_relaxed(MMU_VM_REG(drvdata, IDX_FLPT_BASE, i));
- pgtable[i] <<= PAGE_SHIFT;
+ pgtable[i] <<= PT_BASE_SHIFT;
}
pr_crit("----------------------------------------------------------\n");
@@ -438,7 +437,7 @@ static void sysmmu_show_fault_information(struct sysmmu_drvdata *drvdata,
if (pgtable[i] != drvdata->pgtable[i])
pr_crit("Page table (VID %u) base of driver: %pa\n", i,
&drvdata->pgtable[i]);
- if (pgtable[i] && !pfn_valid(pgtable[i] >> PAGE_SHIFT)) {
+ if (pgtable[i] && !pfn_valid(PFN_DOWN(pgtable[i]))) {
pr_crit("Page table (VID %u) base is not in a valid memory region\n", i);
pgtable[i] = 0;
}
@@ -590,7 +589,7 @@ irqreturn_t samsung_sysmmu_irq_thread(int irq, void *dev_id)
phys_addr_t pgtable;
pgtable = readl_relaxed(MMU_VM_REG(drvdata, IDX_FLPT_BASE, vid));
- pgtable <<= PAGE_SHIFT;
+ pgtable <<= PT_BASE_SHIFT;
if (!drvdata->hide_page_fault)
sysmmu_show_fault_info_simple(drvdata, itype, vid, addr, &pgtable);
sysmmu_clear_interrupt(drvdata, false);