Skip to content
Permalink
Browse files
asm-generic: instrument usercopy in cacheflush.h
Notify memory tools about usercopy events in copy_to_user_page() and
copy_from_user_page().

Signed-off-by: Alexander Potapenko <glider@google.com>
  • Loading branch information
ramosian-glider authored and intel-lab-lkp committed Dec 14, 2021
1 parent 3209eff commit a9bc41d306e2e13721a1569145cbfe7323a60aca
Showing 1 changed file with 8 additions and 1 deletion.
@@ -2,6 +2,8 @@
#ifndef _ASM_GENERIC_CACHEFLUSH_H
#define _ASM_GENERIC_CACHEFLUSH_H

#include <linux/instrumented.h>

struct mm_struct;
struct vm_area_struct;
struct page;
@@ -105,14 +107,19 @@ static inline void flush_cache_vunmap(unsigned long start, unsigned long end)
#ifndef copy_to_user_page
#define copy_to_user_page(vma, page, vaddr, dst, src, len) \
do { \
instrument_copy_to_user(dst, src, len); \
memcpy(dst, src, len); \
flush_icache_user_page(vma, page, vaddr, len); \
} while (0)
#endif

#ifndef copy_from_user_page
#define copy_from_user_page(vma, page, vaddr, dst, src, len) \
memcpy(dst, src, len)
do { \
instrument_copy_from_user_before(dst, src, len); \
memcpy(dst, src, len); \
instrument_copy_from_user_after(dst, src, len, 0); \
} while (0)
#endif

#endif /* _ASM_GENERIC_CACHEFLUSH_H */

0 comments on commit a9bc41d

Please sign in to comment.