Adds non-caching call to fault_in_readable() for configurations with SafeFetch enabled and disabled readable pages. --- mm/gup.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/mm/gup.c b/mm/gup.c index 3c39cbbeebef..69d2d110da3f 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -2224,7 +2224,11 @@ size_t fault_in_readable(const char __user *uaddr, size_t size) /* Stop once we overflow to 0. */ for (cur = start; cur && cur < end; cur = PAGE_ALIGN_DOWN(cur + PAGE_SIZE)) +#if defined(CONFIG_SAFEFETCH) && !defined(SAFEFETCH_PROTECT_PAGES_READABLE) + unsafe_get_user_no_dfcache(c, (const char __user *)cur, out); +#else unsafe_get_user(c, (const char __user *)cur, out); +#endif out: user_read_access_end(); (void)c; -- 2.25.1