Thread (5 messages) 5 messages, 3 authors, 2015-09-06

[PATCH] arm64: add kc_offset_to_vaddr and kc_vaddr_to_offset macro

From: Will Deacon <hidden>
Date: 2015-09-02 10:25:00
Also in: lkml

On Sun, Aug 30, 2015 at 07:19:59AM +0100, yalin wang wrote:
quoted hunk ↗ jump to hunk
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 <redacted>
---
 arch/arm64/include/asm/pgtable.h | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index d374191..ef1ed5c 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -660,6 +660,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) & ((1UL << VA_BITS) - 1))
+#define	kc_offset_to_vaddr(o) ((o) | ~((1UL << VA_BITS) - 1))
I think it would be cleaner to define something like VIRTUAL_BASE, and
then define the vmalloc area in terms of that as well as these kcore
macros.

Will
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help