Merge "mm: usercopy: skip stack page span check"

This commit is contained in:
qctecmdr 2019-12-03 15:33:49 -08:00 • committed by Gerrit - the friendly Code Review server
commit 0100b2ce16

View file

@ -164,6 +164,8 @@ static inline void check_page_span(const void *ptr, unsigned long n,
const void *end = ptr + n - 1;
struct page *endpage;
bool is_reserved, is_cma;
const void * const stack = task_stack_page(current);
const void * const stackend = stack + THREAD_SIZE;
/*
* Sometimes the kernel data regions are not marked Reserved (see
@ -188,6 +190,10 @@ static inline void check_page_span(const void *ptr, unsigned long n,
end <= (const void *)__bss_stop)
return;
/* Allow stack region to span multiple pages */
if (ptr >= stack && end <= stackend)
return;
/* Is the object wholly within one base page? */
if (likely(((unsigned long)ptr & (unsigned long)PAGE_MASK) ==
((unsigned long)end & (unsigned long)PAGE_MASK)))