diff options
Diffstat (limited to 'arch/x86/include/asm/string_64.h')
| -rw-r--r-- | arch/x86/include/asm/string_64.h | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/include/asm/string_64.h b/arch/x86/include/asm/string_64.h index 2afe164bf1e..19e2c468fc2 100644 --- a/arch/x86/include/asm/string_64.h +++ b/arch/x86/include/asm/string_64.h @@ -27,6 +27,7 @@ static __always_inline void *__inline_memcpy(void *to, const void *from, size_t     function. */  #define __HAVE_ARCH_MEMCPY 1 +#ifndef CONFIG_KMEMCHECK  #if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4  extern void *memcpy(void *to, const void *from, size_t len);  #else @@ -42,6 +43,13 @@ extern void *__memcpy(void *to, const void *from, size_t len);  	__ret;							\  })  #endif +#else +/* + * kmemcheck becomes very happy if we use the REP instructions unconditionally, + * because it means that we know both memory operands in advance. + */ +#define memcpy(dst, src, len) __inline_memcpy((dst), (src), (len)) +#endif  #define __HAVE_ARCH_MEMSET  void *memset(void *s, int c, size_t n);  |