On Thu, Oct 20, 2022 at 04:07AM +0800, youling 257 wrote: > That is i did,i already test, remove "u64 __tmp…kmsan_unpoison_memory", no help. > i only remove kmsan_copy_to_user, fix my issue. Ok - does only the below work (without the reverts)? diff --git a/include/linux/kmsan-checks.h b/include/linux/kmsan-checks.h index c4cae333deec..eb05caa8f523 100644 --- a/include/linux/kmsan-checks.h +++ b/include/linux/kmsan-checks.h @@ -73,8 +73,8 @@ static inline void kmsan_unpoison_memory(const void *address, size_t size) static inline void kmsan_check_memory(const void *address, size_t size) { } -static inline void kmsan_copy_to_user(void __user *to, const void *from, - size_t to_copy, size_t left) +static __always_inline void kmsan_copy_to_user(void __user *to, const void *from, + size_t to_copy, size_t left) { } ... because when you say only removing kmsan_copy_to_user() (from instrument_put_user()) works, it really doesn't make any sense. The only explanation would be if the compiler inlining is broken.