Commit ac0e8c72 authored by Mark Rutland's avatar Mark Rutland Committed by Will Deacon

arm64: string: use asm EXPORT_SYMBOL()

For a while now it's been possible to use EXPORT_SYMBOL() in assembly
files, which allows us to place exports immediately after assembly
functions, as we do for C functions.

As a step towards removing arm64ksyms.c, let's move the string routine
exports to the assembly files the functions are defined in. Routines
which should only be exported for !KASAN builds are exported using the
EXPORT_SYMBOL_NOKASAN() helper.

There should be no functional change as a result of this patch.
Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent 56c08ec5
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
#include <linux/export.h> #include <linux/export.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/string.h>
#include <linux/cryptohash.h> #include <linux/cryptohash.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/in6.h> #include <linux/in6.h>
...@@ -29,25 +28,6 @@ ...@@ -29,25 +28,6 @@
#include <asm/checksum.h> #include <asm/checksum.h>
/* string / mem functions */
#ifndef CONFIG_KASAN
EXPORT_SYMBOL(strchr);
EXPORT_SYMBOL(strrchr);
EXPORT_SYMBOL(strcmp);
EXPORT_SYMBOL(strncmp);
EXPORT_SYMBOL(strlen);
EXPORT_SYMBOL(strnlen);
EXPORT_SYMBOL(memcmp);
EXPORT_SYMBOL(memchr);
#endif
EXPORT_SYMBOL(memset);
EXPORT_SYMBOL(memcpy);
EXPORT_SYMBOL(memmove);
EXPORT_SYMBOL(__memset);
EXPORT_SYMBOL(__memcpy);
EXPORT_SYMBOL(__memmove);
#ifdef CONFIG_FUNCTION_TRACER #ifdef CONFIG_FUNCTION_TRACER
EXPORT_SYMBOL(_mcount); EXPORT_SYMBOL(_mcount);
NOKPROBE_SYMBOL(_mcount); NOKPROBE_SYMBOL(_mcount);
......
...@@ -42,3 +42,4 @@ WEAK(memchr) ...@@ -42,3 +42,4 @@ WEAK(memchr)
2: mov x0, #0 2: mov x0, #0
ret ret
ENDPIPROC(memchr) ENDPIPROC(memchr)
EXPORT_SYMBOL_NOKASAN(memchr)
...@@ -256,3 +256,4 @@ CPU_LE( rev data2, data2 ) ...@@ -256,3 +256,4 @@ CPU_LE( rev data2, data2 )
mov result, #0 mov result, #0
ret ret
ENDPIPROC(memcmp) ENDPIPROC(memcmp)
EXPORT_SYMBOL_NOKASAN(memcmp)
...@@ -74,4 +74,6 @@ ENTRY(memcpy) ...@@ -74,4 +74,6 @@ ENTRY(memcpy)
#include "copy_template.S" #include "copy_template.S"
ret ret
ENDPIPROC(memcpy) ENDPIPROC(memcpy)
EXPORT_SYMBOL(memcpy)
ENDPROC(__memcpy) ENDPROC(__memcpy)
EXPORT_SYMBOL(__memcpy)
...@@ -197,4 +197,6 @@ ENTRY(memmove) ...@@ -197,4 +197,6 @@ ENTRY(memmove)
b.ne .Ltail63 b.ne .Ltail63
ret ret
ENDPIPROC(memmove) ENDPIPROC(memmove)
EXPORT_SYMBOL(memmove)
ENDPROC(__memmove) ENDPROC(__memmove)
EXPORT_SYMBOL(__memmove)
...@@ -216,4 +216,6 @@ ENTRY(memset) ...@@ -216,4 +216,6 @@ ENTRY(memset)
b.ne .Ltail_maybe_long b.ne .Ltail_maybe_long
ret ret
ENDPIPROC(memset) ENDPIPROC(memset)
EXPORT_SYMBOL(memset)
ENDPROC(__memset) ENDPROC(__memset)
EXPORT_SYMBOL(__memset)
...@@ -40,3 +40,4 @@ WEAK(strchr) ...@@ -40,3 +40,4 @@ WEAK(strchr)
csel x0, x0, xzr, eq csel x0, x0, xzr, eq
ret ret
ENDPROC(strchr) ENDPROC(strchr)
EXPORT_SYMBOL_NOKASAN(strchr)
...@@ -232,3 +232,4 @@ CPU_BE( orr syndrome, diff, has_nul ) ...@@ -232,3 +232,4 @@ CPU_BE( orr syndrome, diff, has_nul )
sub result, data1, data2, lsr #56 sub result, data1, data2, lsr #56
ret ret
ENDPIPROC(strcmp) ENDPIPROC(strcmp)
EXPORT_SYMBOL_NOKASAN(strcmp)
...@@ -124,3 +124,4 @@ CPU_LE( lsr tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */ ...@@ -124,3 +124,4 @@ CPU_LE( lsr tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */
csel data2, data2, data2a, le csel data2, data2, data2a, le
b .Lrealigned b .Lrealigned
ENDPIPROC(strlen) ENDPIPROC(strlen)
EXPORT_SYMBOL_NOKASAN(strlen)
...@@ -308,3 +308,4 @@ CPU_BE( orr syndrome, diff, has_nul ) ...@@ -308,3 +308,4 @@ CPU_BE( orr syndrome, diff, has_nul )
mov result, #0 mov result, #0
ret ret
ENDPIPROC(strncmp) ENDPIPROC(strncmp)
EXPORT_SYMBOL_NOKASAN(strncmp)
...@@ -169,3 +169,4 @@ CPU_LE( lsr tmp2, tmp2, tmp4 ) /* Shift (tmp1 & 63). */ ...@@ -169,3 +169,4 @@ CPU_LE( lsr tmp2, tmp2, tmp4 ) /* Shift (tmp1 & 63). */
mov len, limit mov len, limit
ret ret
ENDPIPROC(strnlen) ENDPIPROC(strnlen)
EXPORT_SYMBOL_NOKASAN(strnlen)
...@@ -41,3 +41,4 @@ WEAK(strrchr) ...@@ -41,3 +41,4 @@ WEAK(strrchr)
2: mov x0, x3 2: mov x0, x3
ret ret
ENDPIPROC(strrchr) ENDPIPROC(strrchr)
EXPORT_SYMBOL_NOKASAN(strrchr)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment