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: Mark Rutland <mark.rutland@arm.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
This commit is contained in:
parent
56c08ec516
commit
ac0e8c72b0
|
@ -19,7 +19,6 @@
|
|||
|
||||
#include <linux/export.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/cryptohash.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/in6.h>
|
||||
|
@ -29,25 +28,6 @@
|
|||
|
||||
#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
|
||||
EXPORT_SYMBOL(_mcount);
|
||||
NOKPROBE_SYMBOL(_mcount);
|
||||
|
|
|
@ -42,3 +42,4 @@ WEAK(memchr)
|
|||
2: mov x0, #0
|
||||
ret
|
||||
ENDPIPROC(memchr)
|
||||
EXPORT_SYMBOL_NOKASAN(memchr)
|
||||
|
|
|
@ -256,3 +256,4 @@ CPU_LE( rev data2, data2 )
|
|||
mov result, #0
|
||||
ret
|
||||
ENDPIPROC(memcmp)
|
||||
EXPORT_SYMBOL_NOKASAN(memcmp)
|
||||
|
|
|
@ -74,4 +74,6 @@ ENTRY(memcpy)
|
|||
#include "copy_template.S"
|
||||
ret
|
||||
ENDPIPROC(memcpy)
|
||||
EXPORT_SYMBOL(memcpy)
|
||||
ENDPROC(__memcpy)
|
||||
EXPORT_SYMBOL(__memcpy)
|
||||
|
|
|
@ -197,4 +197,6 @@ ENTRY(memmove)
|
|||
b.ne .Ltail63
|
||||
ret
|
||||
ENDPIPROC(memmove)
|
||||
EXPORT_SYMBOL(memmove)
|
||||
ENDPROC(__memmove)
|
||||
EXPORT_SYMBOL(__memmove)
|
||||
|
|
|
@ -216,4 +216,6 @@ ENTRY(memset)
|
|||
b.ne .Ltail_maybe_long
|
||||
ret
|
||||
ENDPIPROC(memset)
|
||||
EXPORT_SYMBOL(memset)
|
||||
ENDPROC(__memset)
|
||||
EXPORT_SYMBOL(__memset)
|
||||
|
|
|
@ -40,3 +40,4 @@ WEAK(strchr)
|
|||
csel x0, x0, xzr, eq
|
||||
ret
|
||||
ENDPROC(strchr)
|
||||
EXPORT_SYMBOL_NOKASAN(strchr)
|
||||
|
|
|
@ -232,3 +232,4 @@ CPU_BE( orr syndrome, diff, has_nul )
|
|||
sub result, data1, data2, lsr #56
|
||||
ret
|
||||
ENDPIPROC(strcmp)
|
||||
EXPORT_SYMBOL_NOKASAN(strcmp)
|
||||
|
|
|
@ -124,3 +124,4 @@ CPU_LE( lsr tmp2, tmp2, tmp1 ) /* Shift (tmp1 & 63). */
|
|||
csel data2, data2, data2a, le
|
||||
b .Lrealigned
|
||||
ENDPIPROC(strlen)
|
||||
EXPORT_SYMBOL_NOKASAN(strlen)
|
||||
|
|
|
@ -308,3 +308,4 @@ CPU_BE( orr syndrome, diff, has_nul )
|
|||
mov result, #0
|
||||
ret
|
||||
ENDPIPROC(strncmp)
|
||||
EXPORT_SYMBOL_NOKASAN(strncmp)
|
||||
|
|
|
@ -169,3 +169,4 @@ CPU_LE( lsr tmp2, tmp2, tmp4 ) /* Shift (tmp1 & 63). */
|
|||
mov len, limit
|
||||
ret
|
||||
ENDPIPROC(strnlen)
|
||||
EXPORT_SYMBOL_NOKASAN(strnlen)
|
||||
|
|
|
@ -41,3 +41,4 @@ WEAK(strrchr)
|
|||
2: mov x0, x3
|
||||
ret
|
||||
ENDPIPROC(strrchr)
|
||||
EXPORT_SYMBOL_NOKASAN(strrchr)
|
||||
|
|
Loading…
Reference in New Issue