|
@@ -347,4 +347,16 @@ extern long strncpy_from_user(char *dest, const char __user *src, long count);
|
|
|
|
|
|
extern __must_check long strnlen_user(const char __user *str, long n);
|
|
|
|
|
|
+#ifdef CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE
|
|
|
+struct page;
|
|
|
+void memcpy_page_flushcache(char *to, struct page *page, size_t offset, size_t len);
|
|
|
+extern unsigned long __must_check __copy_user_flushcache(void *to, const void __user *from, unsigned long n);
|
|
|
+
|
|
|
+static inline int __copy_from_user_flushcache(void *dst, const void __user *src, unsigned size)
|
|
|
+{
|
|
|
+ kasan_check_write(dst, size);
|
|
|
+ return __copy_user_flushcache(dst, src, size);
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
#endif /* __ASM_UACCESS_H */
|