--- zzzz-none-000/linux-4.19.183/arch/arm/include/asm/string.h 2021-03-24 10:07:39.000000000 +0000 +++ bcm63-7530ax-756/linux-4.19.183/arch/arm/include/asm/string.h 2023-06-28 08:54:18.000000000 +0000 @@ -15,15 +15,24 @@ #define __HAVE_ARCH_MEMCPY extern void * memcpy(void *, const void *, __kernel_size_t); +#if defined(CONFIG_BCM_KF_ARM_KASAN) +extern void *__memcpy(void *dest, const void *src, __kernel_size_t n); +#endif #define __HAVE_ARCH_MEMMOVE extern void * memmove(void *, const void *, __kernel_size_t); +#if defined(CONFIG_BCM_KF_ARM_KASAN) +extern void *__memmove(void *dest, const void *src, __kernel_size_t n); +#endif #define __HAVE_ARCH_MEMCHR extern void * memchr(const void *, int, __kernel_size_t); #define __HAVE_ARCH_MEMSET extern void * memset(void *, int, __kernel_size_t); +#if defined(CONFIG_BCM_KF_ARM_KASAN) +extern void *__memset(void *s, int c, __kernel_size_t n); +#endif #define __HAVE_ARCH_MEMSET32 extern void *__memset32(uint32_t *, uint32_t v, __kernel_size_t); @@ -38,5 +47,21 @@ { return __memset64(p, v, n * 8, v >> 32); } +#if defined(CONFIG_BCM_KF_ARM_KASAN) + + + +#if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__) + +/* + * For files that not instrumented (e.g. mm/slub.c) we + * should use not instrumented version of mem* functions. + */ + +#define memcpy(dst, src, len) __memcpy(dst, src, len) +#define memmove(dst, src, len) __memmove(dst, src, len) +#define memset(s, c, n) __memset(s, c, n) +#endif +#endif #endif