Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/via: use get_user_pages_unlocked()

Moving from get_user_pages() to get_user_pages_unlocked() simplifies the code
and takes advantage of VM_FAULT_RETRY functionality when faulting in pages.

Signed-off-by: Lorenzo Stoakes <lstoakes@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170227215008.21457-1-lstoakes@gmail.com

authored by

Lorenzo Stoakes and committed by
Daniel Vetter
0eb9acda ac7d3af8

+3 -7
+3 -7
drivers/gpu/drm/via/via_dmablit.c
··· 238 238 vsg->pages = vzalloc(sizeof(struct page *) * vsg->num_pages); 239 239 if (NULL == vsg->pages) 240 240 return -ENOMEM; 241 - down_read(&current->mm->mmap_sem); 242 - ret = get_user_pages((unsigned long)xfer->mem_addr, 243 - vsg->num_pages, 244 - (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0, 245 - vsg->pages, NULL); 246 - 247 - up_read(&current->mm->mmap_sem); 241 + ret = get_user_pages_unlocked((unsigned long)xfer->mem_addr, 242 + vsg->num_pages, vsg->pages, 243 + (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0); 248 244 if (ret != vsg->num_pages) { 249 245 if (ret < 0) 250 246 return ret;