gpu/drm/ttm: use copy_highpage
authorAkinobu Mita <akinobu.mita@gmail.com>
Tue, 25 Sep 2012 11:57:02 +0000 (11:57 +0000)
committerDave Airlie <airlied@redhat.com>
Mon, 1 Oct 2012 23:26:17 +0000 (09:26 +1000)
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>
drivers/gpu/drm/ttm/ttm_tt.c

index fa09daf..11c9369 100644 (file)
@@ -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);