hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/powerpc/include/asm/string.h
....@@ -4,14 +4,17 @@
44
55 #ifdef __KERNEL__
66
7
+#ifndef CONFIG_KASAN
78 #define __HAVE_ARCH_STRNCPY
89 #define __HAVE_ARCH_STRNCMP
10
+#define __HAVE_ARCH_MEMCHR
11
+#define __HAVE_ARCH_MEMCMP
12
+#define __HAVE_ARCH_MEMSET16
13
+#endif
14
+
915 #define __HAVE_ARCH_MEMSET
1016 #define __HAVE_ARCH_MEMCPY
1117 #define __HAVE_ARCH_MEMMOVE
12
-#define __HAVE_ARCH_MEMCMP
13
-#define __HAVE_ARCH_MEMCHR
14
-#define __HAVE_ARCH_MEMSET16
1518 #define __HAVE_ARCH_MEMCPY_FLUSHCACHE
1619
1720 extern char * strcpy(char *,const char *);
....@@ -25,9 +28,29 @@
2528 extern void * memmove(void *,const void *,__kernel_size_t);
2629 extern int memcmp(const void *,const void *,__kernel_size_t);
2730 extern void * memchr(const void *,int,__kernel_size_t);
28
-extern void * memcpy_flushcache(void *,const void *,__kernel_size_t);
31
+void memcpy_flushcache(void *dest, const void *src, size_t size);
32
+
33
+void *__memset(void *s, int c, __kernel_size_t count);
34
+void *__memcpy(void *to, const void *from, __kernel_size_t n);
35
+void *__memmove(void *to, const void *from, __kernel_size_t n);
36
+
37
+#if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__)
38
+/*
39
+ * For files that are not instrumented (e.g. mm/slub.c) we
40
+ * should use not instrumented version of mem* functions.
41
+ */
42
+#define memcpy(dst, src, len) __memcpy(dst, src, len)
43
+#define memmove(dst, src, len) __memmove(dst, src, len)
44
+#define memset(s, c, n) __memset(s, c, n)
45
+
46
+#ifndef __NO_FORTIFY
47
+#define __NO_FORTIFY /* FORTIFY_SOURCE uses __builtin_memcpy, etc. */
48
+#endif
49
+
50
+#endif
2951
3052 #ifdef CONFIG_PPC64
53
+#ifndef CONFIG_KASAN
3154 #define __HAVE_ARCH_MEMSET32
3255 #define __HAVE_ARCH_MEMSET64
3356
....@@ -49,8 +72,11 @@
4972 {
5073 return __memset64(p, v, n * 8);
5174 }
75
+#endif
5276 #else
77
+#ifndef CONFIG_KASAN
5378 #define __HAVE_ARCH_STRLEN
79
+#endif
5480
5581 extern void *memset16(uint16_t *, uint16_t, __kernel_size_t);
5682 #endif