Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

s390/kasan: remove override of mem*() functions

The kasan mem*() functions are not used anymore since s390 has switched
to GENERIC_ENTRY and commit 69d4c0d32186 ("entry, kasan, x86: Disallow
overriding mem*() functions").

Therefore remove the now dead code, similar to x86.
While at it also use the SYM* macros in mem.S.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>

authored by

Heiko Carstens and committed by
Vasily Gorbik
e48b6853 2d1b21ec

+18 -21
+3 -12
arch/s390/include/asm/string.h
··· 55 55 56 56 #if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__) 57 57 58 - extern void *__memcpy(void *dest, const void *src, size_t n); 59 - extern void *__memset(void *s, int c, size_t n); 60 - extern void *__memmove(void *dest, const void *src, size_t n); 61 - 62 - /* 63 - * For files that are not instrumented (e.g. mm/slub.c) we 64 - * should use not instrumented version of mem* functions. 65 - */ 66 - 67 - #define memcpy(dst, src, len) __memcpy(dst, src, len) 68 - #define memmove(dst, src, len) __memmove(dst, src, len) 69 - #define memset(s, c, n) __memset(s, c, n) 70 58 #define strlen(s) __strlen(s) 71 59 72 60 #define __no_sanitize_prefix_strfunc(x) __##x ··· 67 79 #define __no_sanitize_prefix_strfunc(x) x 68 80 #endif /* defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__) */ 69 81 82 + void *__memcpy(void *dest, const void *src, size_t n); 83 + void *__memset(void *s, int c, size_t n); 84 + void *__memmove(void *dest, const void *src, size_t n); 70 85 void *__memset16(uint16_t *s, uint16_t v, size_t count); 71 86 void *__memset32(uint32_t *s, uint32_t v, size_t count); 72 87 void *__memset64(uint64_t *s, uint64_t v, size_t count);
+15 -9
arch/s390/lib/mem.S
··· 14 14 /* 15 15 * void *memmove(void *dest, const void *src, size_t n) 16 16 */ 17 - WEAK(memmove) 18 - ENTRY(__memmove) 17 + SYM_FUNC_START(__memmove) 19 18 ltgr %r4,%r4 20 19 lgr %r1,%r2 21 20 jz .Lmemmove_exit ··· 47 48 BR_EX %r14 48 49 .Lmemmove_mvc: 49 50 mvc 0(1,%r1),0(%r3) 50 - ENDPROC(__memmove) 51 + SYM_FUNC_END(__memmove) 52 + EXPORT_SYMBOL(__memmove) 53 + 54 + SYM_FUNC_ALIAS(memmove, __memmove) 51 55 EXPORT_SYMBOL(memmove) 52 56 53 57 /* ··· 68 66 * return __builtin_memset(s, c, n); 69 67 * } 70 68 */ 71 - WEAK(memset) 72 - ENTRY(__memset) 69 + SYM_FUNC_START(__memset) 73 70 ltgr %r4,%r4 74 71 jz .Lmemset_exit 75 72 ltgr %r3,%r3 ··· 112 111 xc 0(1,%r1),0(%r1) 113 112 .Lmemset_mvc: 114 113 mvc 1(1,%r1),0(%r1) 115 - ENDPROC(__memset) 114 + SYM_FUNC_END(__memset) 115 + EXPORT_SYMBOL(__memset) 116 + 117 + SYM_FUNC_ALIAS(memset, __memset) 116 118 EXPORT_SYMBOL(memset) 117 119 118 120 /* ··· 123 119 * 124 120 * void *memcpy(void *dest, const void *src, size_t n) 125 121 */ 126 - WEAK(memcpy) 127 - ENTRY(__memcpy) 122 + SYM_FUNC_START(__memcpy) 128 123 ltgr %r4,%r4 129 124 jz .Lmemcpy_exit 130 125 aghi %r4,-1 ··· 144 141 j .Lmemcpy_remainder 145 142 .Lmemcpy_mvc: 146 143 mvc 0(1,%r1),0(%r3) 147 - ENDPROC(__memcpy) 144 + SYM_FUNC_END(__memcpy) 145 + EXPORT_SYMBOL(__memcpy) 146 + 147 + SYM_FUNC_ALIAS(memcpy, __memcpy) 148 148 EXPORT_SYMBOL(memcpy) 149 149 150 150 /*