diff options
Diffstat (limited to 'arch/powerpc/include/asm/string.h')
| -rw-r--r-- | arch/powerpc/include/asm/string.h | 15 | 
1 files changed, 11 insertions, 4 deletions
diff --git a/arch/powerpc/include/asm/string.h b/arch/powerpc/include/asm/string.h index 2aa0e31e6884..60ba22770f51 100644 --- a/arch/powerpc/include/asm/string.h +++ b/arch/powerpc/include/asm/string.h @@ -30,11 +30,17 @@ extern int memcmp(const void *,const void *,__kernel_size_t);  extern void * memchr(const void *,int,__kernel_size_t);  void memcpy_flushcache(void *dest, const void *src, size_t size); +#ifdef CONFIG_KASAN +/* __mem variants are used by KASAN to implement instrumented meminstrinsics. */ +#ifdef CONFIG_CC_HAS_KASAN_MEMINTRINSIC_PREFIX +#define __memset memset +#define __memcpy memcpy +#define __memmove memmove +#else /* CONFIG_CC_HAS_KASAN_MEMINTRINSIC_PREFIX */  void *__memset(void *s, int c, __kernel_size_t count);  void *__memcpy(void *to, const void *from, __kernel_size_t n);  void *__memmove(void *to, const void *from, __kernel_size_t n); - -#if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__) +#ifndef __SANITIZE_ADDRESS__  /*   * For files that are not instrumented (e.g. mm/slub.c) we   * should use not instrumented version of mem* functions. @@ -46,8 +52,9 @@ void *__memmove(void *to, const void *from, __kernel_size_t n);  #ifndef __NO_FORTIFY  #define __NO_FORTIFY /* FORTIFY_SOURCE uses __builtin_memcpy, etc. */  #endif - -#endif +#endif /* !__SANITIZE_ADDRESS__ */ +#endif /* CONFIG_CC_HAS_KASAN_MEMINTRINSIC_PREFIX */ +#endif /* CONFIG_KASAN */  #ifdef CONFIG_PPC64  #ifndef CONFIG_KASAN  |