On Thu, Feb 16, 2012 at 09:32:08PM +0800, Hillf Danton wrote: > 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 I don't quite follow - can you elaborate upon which issue you're seeing? -Daniel -- Daniel Vetter Mail: daniel at ffwll.ch Mobile: +41 (0)79 365 57 48