arm64: add kc_offset_to_vaddr and kc_vaddr_to_offset macro
authoryalin wang <yalin.wang2010@gmail.com>
Mon, 12 Oct 2015 06:52:59 +0000 (14:52 +0800)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 13 Oct 2015 14:15:24 +0000 (15:15 +0100)
This patch add kc_offset_to_vaddr() and kc_vaddr_to_offset(),
the default version doesn't work on arm64, because arm64 kernel address
is below the PAGE_OFFSET, like module address and vmemmap address are
all below PAGE_OFFSET address.

Signed-off-by: yalin wang <yalin.wang2010@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/pgtable.h

index e3b515f..83965dd 100644 (file)
@@ -673,6 +673,8 @@ static inline void update_mmu_cache(struct vm_area_struct *vma,
 
 #define update_mmu_cache_pmd(vma, address, pmd) do { } while (0)
 
+#define        kc_vaddr_to_offset(v) ((v) & ~VA_START)
+#define        kc_offset_to_vaddr(o) ((o) | VA_START)
 #endif /* !__ASSEMBLY__ */
 
 #endif /* __ASM_PGTABLE_H */