Browse Source

Merge tag 'ttm-fixes-3.14-2014-02-05' of git://people.freedesktop.org/~thomash/linux into drm-next

Two ttm regression fixes.

Pull request of 2014-02-05

* tag 'ttm-fixes-3.14-2014-02-05' of git://people.freedesktop.org/~thomash/linux:
  drm/ttm: Don't clear page metadata of imported sg pages
  drm/ttm: Fix TTM object open regression
Dave Airlie 11 years ago
parent
commit
9df5a9b02f
2 changed files with 4 additions and 1 deletions
  1. 1 1
      drivers/gpu/drm/ttm/ttm_object.c
  2. 3 0
      drivers/gpu/drm/ttm/ttm_tt.c

+ 1 - 1
drivers/gpu/drm/ttm/ttm_object.c

@@ -292,7 +292,7 @@ int ttm_ref_object_add(struct ttm_object_file *tfile,
 
 
 		if (ret == 0) {
 		if (ret == 0) {
 			ref = drm_hash_entry(hash, struct ttm_ref_object, hash);
 			ref = drm_hash_entry(hash, struct ttm_ref_object, hash);
-			if (!kref_get_unless_zero(&ref->kref)) {
+			if (kref_get_unless_zero(&ref->kref)) {
 				rcu_read_unlock();
 				rcu_read_unlock();
 				break;
 				break;
 			}
 			}

+ 3 - 0
drivers/gpu/drm/ttm/ttm_tt.c

@@ -380,6 +380,9 @@ static void ttm_tt_clear_mapping(struct ttm_tt *ttm)
 	pgoff_t i;
 	pgoff_t i;
 	struct page **page = ttm->pages;
 	struct page **page = ttm->pages;
 
 
+	if (ttm->page_flags & TTM_PAGE_FLAG_SG)
+		return;
+
 	for (i = 0; i < ttm->num_pages; ++i) {
 	for (i = 0; i < ttm->num_pages; ++i) {
 		(*page)->mapping = NULL;
 		(*page)->mapping = NULL;
 		(*page++)->index = 0;
 		(*page++)->index = 0;