summaryrefslogtreecommitdiff
path: root/arch/tile/include/asm/page.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2016-01-29 11:41:18 +0300
committerIngo Molnar <mingo@kernel.org>2016-01-29 11:41:18 +0300
commit76b36fa896a2db64582690e085f36adc76604134 (patch)
tree78007f123ead6f96cdee6ba98ac3c289c706cc39 /arch/tile/include/asm/page.h
parent14365449b6ce34cf6a3040ff8ebbb39d89d67159 (diff)
parent92e963f50fc74041b5e9e744c330dca48e04f08d (diff)
downloadlinux-76b36fa896a2db64582690e085f36adc76604134.tar.xz
Merge tag 'v4.5-rc1' into x86/asm, to refresh the branch before merging new changes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/tile/include/asm/page.h')
-rw-r--r--arch/tile/include/asm/page.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/tile/include/asm/page.h b/arch/tile/include/asm/page.h
index 8eca6a0e1762..498a5f71245d 100644
--- a/arch/tile/include/asm/page.h
+++ b/arch/tile/include/asm/page.h
@@ -321,6 +321,16 @@ static inline int pfn_valid(unsigned long pfn)
#define virt_to_page(kaddr) pfn_to_page(kaddr_to_pfn((void *)(kaddr)))
#define page_to_virt(page) pfn_to_kaddr(page_to_pfn(page))
+/*
+ * The kernel text is mapped at MEM_SV_START as read-only. To allow
+ * modifying kernel text, it is also mapped at PAGE_OFFSET as read-write.
+ * This macro converts a kernel address to its writable kernel text mapping,
+ * which is used to modify the text code on a running kernel by kgdb,
+ * ftrace, kprobe, jump label, etc.
+ */
+#define ktext_writable_addr(kaddr) \
+ ((unsigned long)(kaddr) - MEM_SV_START + PAGE_OFFSET)
+
struct mm_struct;
extern pte_t *virt_to_pte(struct mm_struct *mm, unsigned long addr);
extern pte_t *virt_to_kpte(unsigned long kaddr);