On Thu, Feb 16, 2012 at 8:01 PM, Daniel Vetter <daniel.vetter at ffwll.ch> 
wrote:
> @@ -416,17 +417,20 @@ static inline int fault_in_pages_writeable(char __user 
> *uaddr, int size)
> ? ? ? ? * Writing zeroes into userspace here is OK, because we know that if
> ? ? ? ? * the zero gets there, we'll be overwriting it.
> ? ? ? ? */
> - ? ? ? ret = __put_user(0, uaddr);
> + ? ? ? while (uaddr <= end) {
> + ? ? ? ? ? ? ? ret = __put_user(0, uaddr);
> + ? ? ? ? ? ? ? if (ret != 0)
> + ? ? ? ? ? ? ? ? ? ? ? return ret;
> + ? ? ? ? ? ? ? uaddr += PAGE_SIZE;
> + ? ? ? }

What if
             uaddr & ~PAGE_MASK == PAGE_SIZE -3 &&
                end & ~PAGE_MASK == 2

Reply via email to