From 58210d2feca8aa6d4f4c1d7c236f6a696f3caa27 Mon Sep 17 00:00:00 2001 From: "liguang.zhang" <81204050+liguang-hxd@users.noreply.github.com> Date: Mon, 5 Feb 2024 16:02:22 +0800 Subject: [PATCH] resolve translate iova error PAGE_MASK is 0xff...fff000 here should use 0xfff to calculate page internal offset --- drivers/iommu/riscv/io_pgtable.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/riscv/io_pgtable.c b/drivers/iommu/riscv/io_pgtable.c index b6e603e6726ec0..9ae9c38b0227fc 100644 --- a/drivers/iommu/riscv/io_pgtable.c +++ b/drivers/iommu/riscv/io_pgtable.c @@ -218,7 +218,7 @@ static phys_addr_t riscv_iommu_iova_to_phys(struct io_pgtable_ops *ops, if (!pte || !pte_present(*pte)) return 0; - return (pfn_to_phys(pte_pfn(*pte)) | (iova & PAGE_MASK)); + return (pfn_to_phys(pte_pfn(*pte)) | (iova & ~PAGE_MASK)); } static void riscv_iommu_tlb_inv_all(void *cookie)