aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel/arm64ksyms.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-04-28 00:42:52 +0200
committerWill Deacon <will.deacon@arm.com>2018-05-21 19:00:48 +0100
commit255845fc43a3aaf806852a1d3bc89bff1411ebe3 (patch)
treed4b7ec9123394b567e596842f1423351b5c3f0bc /arch/arm64/kernel/arm64ksyms.c
parentarm64: lse: Add early clobbers to some input/output asm operands (diff)
downloadlinux-dev-255845fc43a3aaf806852a1d3bc89bff1411ebe3.tar.xz
linux-dev-255845fc43a3aaf806852a1d3bc89bff1411ebe3.zip
arm64: export tishift functions to modules
Otherwise modules that use these arithmetic operations will fail to link. We accomplish this with the usual EXPORT_SYMBOL, which on most architectures goes in the .S file but the ARM64 maintainers prefer that insead it goes into arm64ksyms. While we're at it, we also fix this up to use SPDX, and I personally choose to relicense this as GPL2||BSD so that these symbols don't need to be export_symbol_gpl, so all modules can use the routines, since these are important general purpose compiler-generated function calls. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Reported-by: PaX Team <pageexec@freemail.hu> Cc: stable@vger.kernel.org Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/arm64ksyms.c')
-rw-r--r--arch/arm64/kernel/arm64ksyms.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm64/kernel/arm64ksyms.c b/arch/arm64/kernel/arm64ksyms.c
index 66be504edb6c..d894a20b70b2 100644
--- a/arch/arm64/kernel/arm64ksyms.c
+++ b/arch/arm64/kernel/arm64ksyms.c
@@ -75,3 +75,11 @@ NOKPROBE_SYMBOL(_mcount);
/* arm-smccc */
EXPORT_SYMBOL(__arm_smccc_smc);
EXPORT_SYMBOL(__arm_smccc_hvc);
+
+ /* tishift.S */
+extern long long __ashlti3(long long a, int b);
+EXPORT_SYMBOL(__ashlti3);
+extern long long __ashrti3(long long a, int b);
+EXPORT_SYMBOL(__ashrti3);
+extern long long __lshrti3(long long a, int b);
+EXPORT_SYMBOL(__lshrti3);