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
This commit is contained in:
Родитель
ac7d3af84b
Коммит
0eb9acda36
|
@ -238,13 +238,9 @@ via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer)
|
|||
vsg->pages = vzalloc(sizeof(struct page *) * vsg->num_pages);
|
||||
if (NULL == vsg->pages)
|
||||
return -ENOMEM;
|
||||
down_read(¤t->mm->mmap_sem);
|
||||
ret = get_user_pages((unsigned long)xfer->mem_addr,
|
||||
vsg->num_pages,
|
||||
(vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0,
|
||||
vsg->pages, NULL);
|
||||
|
||||
up_read(¤t->mm->mmap_sem);
|
||||
ret = get_user_pages_unlocked((unsigned long)xfer->mem_addr,
|
||||
vsg->num_pages, vsg->pages,
|
||||
(vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0);
|
||||
if (ret != vsg->num_pages) {
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
|
Загрузка…
Ссылка в новой задаче