]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
xtensa: add asm-prototypes.h
authorMax Filippov <jcmvbkbc@gmail.com>
Thu, 11 May 2023 20:53:08 +0000 (13:53 -0700)
committerMax Filippov <jcmvbkbc@gmail.com>
Tue, 13 Jun 2023 02:48:57 +0000 (19:48 -0700)
Move assembly source prototypes from xtensa_ksyms.c to
asm/asm-prototypes.h, move corresponding EXPORT_SYMBOLs to the assembly
sources and enable HAVE_ASM_MODVERSIONS for xtensa.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
23 files changed:
arch/xtensa/Kconfig
arch/xtensa/include/asm/asm-prototypes.h [new file with mode: 0644]
arch/xtensa/include/asm/asmmacro.h
arch/xtensa/kernel/mcount.S
arch/xtensa/kernel/xtensa_ksyms.c
arch/xtensa/lib/ashldi3.S
arch/xtensa/lib/ashrdi3.S
arch/xtensa/lib/bswapdi2.S
arch/xtensa/lib/bswapsi2.S
arch/xtensa/lib/checksum.S
arch/xtensa/lib/divsi3.S
arch/xtensa/lib/lshrdi3.S
arch/xtensa/lib/memcopy.S
arch/xtensa/lib/memset.S
arch/xtensa/lib/modsi3.S
arch/xtensa/lib/mulsi3.S
arch/xtensa/lib/strncpy_user.S
arch/xtensa/lib/strnlen_user.S
arch/xtensa/lib/udivsi3.S
arch/xtensa/lib/umodsi3.S
arch/xtensa/lib/umulsidi3.S
arch/xtensa/lib/usercopy.S
arch/xtensa/mm/misc.S

index 3c6e5471f025b91c51119af68b0bb4389329f061..46051edc5ed3896df217014dfdafbf2c45c8e037 100644 (file)
@@ -35,6 +35,7 @@ config XTENSA
        select HAVE_ARCH_KCSAN
        select HAVE_ARCH_SECCOMP_FILTER
        select HAVE_ARCH_TRACEHOOK
+       select HAVE_ASM_MODVERSIONS
        select HAVE_CONTEXT_TRACKING_USER
        select HAVE_DEBUG_KMEMLEAK
        select HAVE_DMA_CONTIGUOUS
diff --git a/arch/xtensa/include/asm/asm-prototypes.h b/arch/xtensa/include/asm/asm-prototypes.h
new file mode 100644 (file)
index 0000000..b0da618
--- /dev/null
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __ASM_PROTOTYPES_H
+#define __ASM_PROTOTYPES_H
+
+#include <asm/cacheflush.h>
+#include <asm/checksum.h>
+#include <asm/ftrace.h>
+#include <asm/page.h>
+#include <asm/string.h>
+#include <asm/uaccess.h>
+
+#include <asm-generic/asm-prototypes.h>
+
+/*
+ * gcc internal math functions
+ */
+long long __ashrdi3(long long, int);
+long long __ashldi3(long long, int);
+long long __bswapdi2(long long);
+int __bswapsi2(int);
+long long __lshrdi3(long long, int);
+int __divsi3(int, int);
+int __modsi3(int, int);
+int __mulsi3(int, int);
+unsigned int __udivsi3(unsigned int, unsigned int);
+unsigned int __umodsi3(unsigned int, unsigned int);
+unsigned long long __umulsidi3(unsigned int, unsigned int);
+
+#endif /* __ASM_PROTOTYPES_H */
index e3474ca411ff29959f180c0104039a847c0db0cc..01bf7d9dbb1910a291316cd713b0014045793933 100644 (file)
@@ -11,6 +11,7 @@
 #ifndef _XTENSA_ASMMACRO_H
 #define _XTENSA_ASMMACRO_H
 
+#include <asm-generic/export.h>
 #include <asm/core.h>
 
 /*
index 51daaf4e0b82a5e34a02978b6e05fbe90257d5ca..309b3298258f699b2f8663d4e70c472aaa3889c9 100644 (file)
@@ -78,6 +78,7 @@ ENTRY(_mcount)
 #error Unsupported Xtensa ABI
 #endif
 ENDPROC(_mcount)
+EXPORT_SYMBOL(_mcount)
 
 ENTRY(ftrace_stub)
        abi_entry_default
index a9aa90c995cd2af6fbf013bf6334720d12ed93a1..62d81e76e18e238ec1772de97b783f07033228e6 100644 (file)
  */
 
 #include <linux/module.h>
-#include <linux/string.h>
-#include <linux/mm.h>
-#include <linux/interrupt.h>
-#include <asm/irq.h>
-#include <linux/in6.h>
-
-#include <linux/uaccess.h>
-#include <asm/cacheflush.h>
-#include <asm/checksum.h>
-#include <asm/dma.h>
-#include <asm/io.h>
-#include <asm/page.h>
-#include <asm/ftrace.h>
-#ifdef CONFIG_BLK_DEV_FD
-#include <asm/floppy.h>
-#endif
-#ifdef CONFIG_NET
-#include <net/checksum.h>
-#endif /* CONFIG_NET */
-
-
-/*
- * String functions
- */
-EXPORT_SYMBOL(memset);
-EXPORT_SYMBOL(memcpy);
-EXPORT_SYMBOL(memmove);
-EXPORT_SYMBOL(__memset);
-EXPORT_SYMBOL(__memcpy);
-EXPORT_SYMBOL(__memmove);
-#ifdef CONFIG_ARCH_HAS_STRNCPY_FROM_USER
-EXPORT_SYMBOL(__strncpy_user);
-#endif
-EXPORT_SYMBOL(clear_page);
-EXPORT_SYMBOL(copy_page);
+#include <asm/pgtable.h>
 
 EXPORT_SYMBOL(empty_zero_page);
 
-/*
- * gcc internal math functions
- */
-extern long long __ashrdi3(long long, int);
-extern long long __ashldi3(long long, int);
-extern long long __bswapdi2(long long);
-extern int __bswapsi2(int);
-extern long long __lshrdi3(long long, int);
-extern int __divsi3(int, int);
-extern int __modsi3(int, int);
-extern int __mulsi3(int, int);
-extern unsigned int __udivsi3(unsigned int, unsigned int);
-extern unsigned int __umodsi3(unsigned int, unsigned int);
-extern unsigned long long __umulsidi3(unsigned int, unsigned int);
-
-EXPORT_SYMBOL(__ashldi3);
-EXPORT_SYMBOL(__ashrdi3);
-EXPORT_SYMBOL(__bswapdi2);
-EXPORT_SYMBOL(__bswapsi2);
-EXPORT_SYMBOL(__lshrdi3);
-EXPORT_SYMBOL(__divsi3);
-EXPORT_SYMBOL(__modsi3);
-EXPORT_SYMBOL(__mulsi3);
-EXPORT_SYMBOL(__udivsi3);
-EXPORT_SYMBOL(__umodsi3);
-EXPORT_SYMBOL(__umulsidi3);
-
 unsigned int __sync_fetch_and_and_4(volatile void *p, unsigned int v)
 {
        BUG();
@@ -89,32 +28,3 @@ unsigned int __sync_fetch_and_or_4(volatile void *p, unsigned int v)
        BUG();
 }
 EXPORT_SYMBOL(__sync_fetch_and_or_4);
-
-/*
- * Networking support
- */
-EXPORT_SYMBOL(csum_partial);
-EXPORT_SYMBOL(csum_partial_copy_generic);
-
-/*
- * Architecture-specific symbols
- */
-EXPORT_SYMBOL(__xtensa_copy_user);
-EXPORT_SYMBOL(__invalidate_icache_range);
-
-/*
- * Kernel hacking ...
- */
-
-#if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
-// FIXME EXPORT_SYMBOL(screen_info);
-#endif
-
-#ifdef CONFIG_FUNCTION_TRACER
-EXPORT_SYMBOL(_mcount);
-#endif
-
-EXPORT_SYMBOL(__invalidate_dcache_range);
-#if XCHAL_DCACHE_IS_WRITEBACK
-EXPORT_SYMBOL(__flush_dcache_range);
-#endif
index 67fb0da9e432c3940f645b6f92027869dbadd15b..cd6b731215d3e0b2eb32ca58ae1fddef4b28ef21 100644 (file)
@@ -26,3 +26,4 @@ ENTRY(__ashldi3)
        abi_ret_default
 
 ENDPROC(__ashldi3)
+EXPORT_SYMBOL(__ashldi3)
index cbf052c512cc8ff38a23942b09a391f7e9ce5015..07bc6e7580203788d42b79b2973557707adda951 100644 (file)
@@ -26,3 +26,4 @@ ENTRY(__ashrdi3)
        abi_ret_default
 
 ENDPROC(__ashrdi3)
+EXPORT_SYMBOL(__ashrdi3)
index d8e52e05eba664fe80a41a6ee20468eab878b1a2..5d94a93528877b9a9cc8d729a07e67e5607c8eab 100644 (file)
@@ -19,3 +19,4 @@ ENTRY(__bswapdi2)
        abi_ret_default
 
 ENDPROC(__bswapdi2)
+EXPORT_SYMBOL(__bswapdi2)
index 9c1de1344f79ad7c71a6dcfcb73a0dd72c302328..fbfb8613d410523e590bf9d3add415378e536fb6 100644 (file)
@@ -14,3 +14,4 @@ ENTRY(__bswapsi2)
        abi_ret_default
 
 ENDPROC(__bswapsi2)
+EXPORT_SYMBOL(__bswapsi2)
index cf1bed1a5bd65807f7f59e1c1ae7fa165e76c3b0..ffee6f94c8f82e6194dac0d1effe994ebd6b75e1 100644 (file)
@@ -169,6 +169,7 @@ ENTRY(csum_partial)
        j       5b              /* branch to handle the remaining byte */
 
 ENDPROC(csum_partial)
+EXPORT_SYMBOL(csum_partial)
 
 /*
  * Copy from ds while checksumming, otherwise like csum_partial
@@ -346,6 +347,7 @@ EX(10f)     s8i     a8, a3, 1
        j       4b              /* process the possible trailing odd byte */
 
 ENDPROC(csum_partial_copy_generic)
+EXPORT_SYMBOL(csum_partial_copy_generic)
 
 
 # Exception handler:
index b044b4744a8b4f7981b030dfc8b10516294155a8..edb3c4ad971b2cedf9c98647763a70acb891e525 100644 (file)
@@ -72,3 +72,4 @@ ENTRY(__divsi3)
        abi_ret_default
 
 ENDPROC(__divsi3)
+EXPORT_SYMBOL(__divsi3)
index 129ef8d1725b3b8d49091a38661aa54ed8ade042..e432e1a4070281c2020b60c28480e6120e48a2aa 100644 (file)
@@ -26,3 +26,4 @@ ENTRY(__lshrdi3)
        abi_ret_default
 
 ENDPROC(__lshrdi3)
+EXPORT_SYMBOL(__lshrdi3)
index 98c3662bed8cb42e8372f458ca8078a4ab944ffc..f60760396ceedfbddb82de55431489b1870062d8 100644 (file)
@@ -273,6 +273,8 @@ WEAK(memcpy)
        abi_ret_default
 
 ENDPROC(__memcpy)
+EXPORT_SYMBOL(__memcpy)
+EXPORT_SYMBOL(memcpy)
 
 /*
  * void *memmove(void *dst, const void *src, size_t len);
@@ -536,3 +538,5 @@ WEAK(memmove)
        abi_ret_default
 
 ENDPROC(__memmove)
+EXPORT_SYMBOL(__memmove)
+EXPORT_SYMBOL(memmove)
index 59b1524fd601d175090ebe6f4bb3eb419b228e7d..262c3f39f945f4befcd8d524e47b1eabd0bac62c 100644 (file)
@@ -142,6 +142,8 @@ EX(10f) s8i a3, a5, 0
        abi_ret_default
 
 ENDPROC(__memset)
+EXPORT_SYMBOL(__memset)
+EXPORT_SYMBOL(memset)
 
        .section .fixup, "ax"
        .align  4
index d00e77181e201bdf0562ecf61fb18a4a8d80f1de..c5f4295c6868241f878929d80ff6de930b1b6313 100644 (file)
@@ -60,6 +60,7 @@ ENTRY(__modsi3)
        abi_ret_default
 
 ENDPROC(__modsi3)
+EXPORT_SYMBOL(__modsi3)
 
 #if !XCHAL_HAVE_NSA
        .section .rodata
index 91a9d7c62f9645c200d92a119525d7d135ce57b0..c6b4fd46bfa9269d0b945b5c0f50bf94d3fa9d38 100644 (file)
@@ -131,3 +131,4 @@ ENTRY(__mulsi3)
        abi_ret_default
 
 ENDPROC(__mulsi3)
+EXPORT_SYMBOL(__mulsi3)
index 0731912227d37eb12a2616ff845c27c0a47cca9b..9841d1694cdff4c3320022f4c80eb504d321d844 100644 (file)
@@ -201,6 +201,7 @@ EX(10f)     s8i     a9, a11, 0
        abi_ret_default
 
 ENDPROC(__strncpy_user)
+EXPORT_SYMBOL(__strncpy_user)
 
        .section .fixup, "ax"
        .align  4
index 3d391dca3efb729efcb7bc358dee19eaeb417cd0..cdcf574741648b8bbc016d1b0f3599fc837a2099 100644 (file)
@@ -133,6 +133,7 @@ EX(10f)     l32i    a9, a4, 0       # get word with first two bytes of string
        abi_ret_default
 
 ENDPROC(__strnlen_user)
+EXPORT_SYMBOL(__strnlen_user)
 
        .section .fixup, "ax"
        .align  4
index d2477e0786cf08bacf0426f4dfb2dba0de6b7b54..59ea2dfc3f720ab0db7e762b0fa3611ed465f072 100644 (file)
@@ -66,3 +66,4 @@ ENTRY(__udivsi3)
        abi_ret_default
 
 ENDPROC(__udivsi3)
+EXPORT_SYMBOL(__udivsi3)
index 5f031bfa0354726f344cd6804145f448fa4b130b..d39a7e56a9716ee5cc3ec7d62448bbb74562956f 100644 (file)
@@ -55,3 +55,4 @@ ENTRY(__umodsi3)
        abi_ret_default
 
 ENDPROC(__umodsi3)
+EXPORT_SYMBOL(__umodsi3)
index 13608164794274250c02b703edfc7ceb49ef5e97..8c7a94a0c5d07937eeea538c5882e0854b79d3ca 100644 (file)
@@ -228,3 +228,4 @@ ENTRY(__umulsidi3)
 #endif /* XCHAL_NO_MUL */
 
 ENDPROC(__umulsidi3)
+EXPORT_SYMBOL(__umulsidi3)
index 16128c094c621ed8cdc9c6f8854a9aac611c966e..2c665c0b408eb80f2c7c6a09c03ae95267990ef1 100644 (file)
@@ -283,6 +283,7 @@ EX(10f)     s8i     a6, a5,  0
        abi_ret(STACK_SIZE)
 
 ENDPROC(__xtensa_copy_user)
+EXPORT_SYMBOL(__xtensa_copy_user)
 
        .section .fixup, "ax"
        .align  4
index 0527bf6e32111b31d72094136a62f101802f2b5b..ec36f73c47652786fb4dc70adf3dd0ff9d550ffc 100644 (file)
@@ -47,6 +47,7 @@ ENTRY(clear_page)
        abi_ret_default
 
 ENDPROC(clear_page)
+EXPORT_SYMBOL(clear_page)
 
 /*
  * copy_page and copy_user_page are the same for non-cache-aliased configs.
@@ -89,6 +90,7 @@ ENTRY(copy_page)
        abi_ret_default
 
 ENDPROC(copy_page)
+EXPORT_SYMBOL(copy_page)
 
 #ifdef CONFIG_MMU
 /*
@@ -367,6 +369,7 @@ ENTRY(__invalidate_icache_range)
        abi_ret_default
 
 ENDPROC(__invalidate_icache_range)
+EXPORT_SYMBOL(__invalidate_icache_range)
 
 /*
  * void __flush_invalidate_dcache_range(ulong start, ulong size)
@@ -397,6 +400,7 @@ ENTRY(__flush_dcache_range)
        abi_ret_default
 
 ENDPROC(__flush_dcache_range)
+EXPORT_SYMBOL(__flush_dcache_range)
 
 /*
  * void _invalidate_dcache_range(ulong start, ulong size)
@@ -411,6 +415,7 @@ ENTRY(__invalidate_dcache_range)
        abi_ret_default
 
 ENDPROC(__invalidate_dcache_range)
+EXPORT_SYMBOL(__invalidate_dcache_range)
 
 /*
  * void _invalidate_icache_all(void)