Subject: Re: [PATCH v2 02/11] mm: Hardened usercopy

From: Rik van Riel <[email-masked]>
Date: Thu, 14 Jul 2016 21:04:18 -0400

On Fri, 2016-07-15 at 09:20 +1000, Balbir Singh wrote:

> > ==
> > +		   ((unsigned long)end & (unsigned
> > long)PAGE_MASK)))
> > +		return NULL;
> > +
> > +	/* Allow if start and end are inside the same compound
> > page. */
> > +	endpage = virt_to_head_page(end);
> > +	if (likely(endpage == page))
> > +		return NULL;
> > +
> > +	/* Allow special areas, device memory, and sometimes
> > kernel data. */
> > +	if (PageReserved(page) && PageReserved(endpage))
> > +		return NULL;
> 
> If we came here, it's likely that endpage > page, do we need to check
> that only the first and last pages are reserved? What about the ones
> in
> the middle?

I think this will be so rare, we can get away with just
checking the beginning and the end.

-- 

All Rights Reversed.