summaryrefslogtreecommitdiff
path: root/arch/m68k/include/asm/page_no.h
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2022-06-02 09:48:29 +0200
committerLinus Walleij <linus.walleij@linaro.org>2023-05-29 11:27:08 +0200
commitef7d0f5d03b9e65c9daa8dfe8b405b10566055eb (patch)
treeecfcb0253a7ad6ca5f9f34240cd204a0d8f805bb /arch/m68k/include/asm/page_no.h
parentc94b1a012f93327a4fe16ab9455331f37e69242f (diff)
m68k/mm: Make pfn accessors static inlines
Making virt_to_pfn() a static inline taking a strongly typed (const void *) makes the contract of a passing a pointer of that type to the function explicit and exposes any misuse of the macro virt_to_pfn() acting polymorphic and accepting many types such as (void *), (unitptr_t) or (unsigned long) as arguments without warnings. For symmetry, do the same with pfn_to_virt(). Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'arch/m68k/include/asm/page_no.h')
-rw-r--r--arch/m68k/include/asm/page_no.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/m68k/include/asm/page_no.h b/arch/m68k/include/asm/page_no.h
index 060e4c0e7605..af3a10973233 100644
--- a/arch/m68k/include/asm/page_no.h
+++ b/arch/m68k/include/asm/page_no.h
@@ -19,8 +19,15 @@ extern unsigned long memory_end;
#define __pa(vaddr) ((unsigned long)(vaddr))
#define __va(paddr) ((void *)((unsigned long)(paddr)))
-#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT)
-#define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT)
+static inline unsigned long virt_to_pfn(const void *kaddr)
+{
+ return __pa(kaddr) >> PAGE_SHIFT;
+}
+
+static inline void *pfn_to_virt(unsigned long pfn)
+{
+ return __va(pfn << PAGE_SHIFT);
+}
#define virt_to_page(addr) (mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT))
#define page_to_virt(page) __va(((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET))