summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-core/drm_bo_move.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/linux-core/drm_bo_move.c b/linux-core/drm_bo_move.c
index dae99181..2a35d45b 100644
--- a/linux-core/drm_bo_move.c
+++ b/linux-core/drm_bo_move.c
@@ -488,16 +488,6 @@ static int drm_bo_kmap_ttm(struct drm_buffer_object *bo, unsigned long start_pag
BUG_ON(!ttm);
- /*
- * Populate the part we're mapping;
- */
-
- for (i=start_page; i< num_pages; ++i) {
- d = drm_ttm_get_page(ttm, i);
- if (!d)
- return -ENOMEM;
- }
-
if (num_pages == 1 && (mem->flags & DRM_BO_FLAG_CACHED)) {
/*
@@ -509,6 +499,15 @@ static int drm_bo_kmap_ttm(struct drm_buffer_object *bo, unsigned long start_pag
map->page = drm_ttm_get_page(ttm, start_page);
map->virtual = kmap(map->page);
} else {
+ /*
+ * Populate the part we're mapping;
+ */
+
+ for (i = start_page; i< start_page + num_pages; ++i) {
+ d = drm_ttm_get_page(ttm, i);
+ if (!d)
+ return -ENOMEM;
+ }
/*
* We need to use vmap to get the desired page protection