mirror of https://gitee.com/openkylin/linux.git
gpu/drm/ttm: use copy_highpage
Use copy_highpage() to copy from one page to another. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: dri-devel@lists.freedesktop.org Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
27796b465d
commit
259a290e78
|
@ -290,8 +290,6 @@ int ttm_tt_swapin(struct ttm_tt *ttm)
|
|||
struct file *swap_storage;
|
||||
struct page *from_page;
|
||||
struct page *to_page;
|
||||
void *from_virtual;
|
||||
void *to_virtual;
|
||||
int i;
|
||||
int ret = -ENOMEM;
|
||||
|
||||
|
@ -311,11 +309,7 @@ int ttm_tt_swapin(struct ttm_tt *ttm)
|
|||
goto out_err;
|
||||
|
||||
preempt_disable();
|
||||
from_virtual = kmap_atomic(from_page);
|
||||
to_virtual = kmap_atomic(to_page);
|
||||
memcpy(to_virtual, from_virtual, PAGE_SIZE);
|
||||
kunmap_atomic(to_virtual);
|
||||
kunmap_atomic(from_virtual);
|
||||
copy_highpage(to_page, from_page);
|
||||
preempt_enable();
|
||||
page_cache_release(from_page);
|
||||
}
|
||||
|
@ -336,8 +330,6 @@ int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistent_swap_storage)
|
|||
struct file *swap_storage;
|
||||
struct page *from_page;
|
||||
struct page *to_page;
|
||||
void *from_virtual;
|
||||
void *to_virtual;
|
||||
int i;
|
||||
int ret = -ENOMEM;
|
||||
|
||||
|
@ -367,11 +359,7 @@ int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistent_swap_storage)
|
|||
goto out_err;
|
||||
}
|
||||
preempt_disable();
|
||||
from_virtual = kmap_atomic(from_page);
|
||||
to_virtual = kmap_atomic(to_page);
|
||||
memcpy(to_virtual, from_virtual, PAGE_SIZE);
|
||||
kunmap_atomic(to_virtual);
|
||||
kunmap_atomic(from_virtual);
|
||||
copy_highpage(to_page, from_page);
|
||||
preempt_enable();
|
||||
set_page_dirty(to_page);
|
||||
mark_page_accessed(to_page);
|
||||
|
|
Loading…
Reference in New Issue