[PATCH] RISC-V: Fixup clear_page export when using Zicboz

Ben Dooks ben.dooks at codethink.co.uk
Fri Feb 24 05:58:44 PST 2023


When the clear_page() via Zicboz is enabled, the module build
fails as clear_page() is not marked as a ksym entry. Fix this
by changing the asm code to use <asm-generic/export.h> to add
the correct export.

Also remove the weak clear_page() as there's nothing else in
the build defining this symbol, so just make it the entry when
the Zicboz is enabled.

Fixes modpost errors such as this:
ERROR: modpost: "clear_page" [drivers/gpu/drm/ttm/ttm.ko] undefined!

Reported-by: Sudip Mukherjee <sudip.mukherjee at codethink.co.uk>
Signed-off-by: Ben Dooks <ben.dooks at codethink.co.uk>
---
 arch/riscv/lib/clear_page.S | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/riscv/lib/clear_page.S b/arch/riscv/lib/clear_page.S
index 7c7fa45b5ab5..4ed5fef52d80 100644
--- a/arch/riscv/lib/clear_page.S
+++ b/arch/riscv/lib/clear_page.S
@@ -6,6 +6,7 @@
 #include <linux/linkage.h>
 #include <asm/asm.h>
 #include <asm/alternative-macros.h>
+#include <asm-generic/export.h>
 #include <asm/hwcap.h>
 #include <asm/insn-def.h>
 #include <asm/page.h>
@@ -17,7 +18,7 @@
 
 /* void clear_page(void *page) */
 ENTRY(__clear_page)
-WEAK(clear_page)
+SYM_FUNC_START(clear_page)
 	li	a2, PAGE_SIZE
 
 	/*
@@ -70,4 +71,5 @@ WEAK(clear_page)
 .Lno_zicboz:
 	li	a1, 0
 	tail	__memset
-END(__clear_page)
+SYM_FUNC_END(clear_page)
+EXPORT_SYMBOL(clear_page)
-- 
2.39.1




More information about the linux-riscv mailing list