Module Name:    src
Committed By:   riastradh
Date:           Tue Jul 22 15:15:22 UTC 2014

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/ttm: ttm_tt.c

Log Message:
Fix ttm swap storage destruction.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c
diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.3 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.3	Thu Jul 17 17:19:42 2014
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c	Tue Jul 22 15:15:22 2014
@@ -181,11 +181,9 @@ void ttm_tt_destroy(struct ttm_tt *ttm)
 	if (ttm->state == tt_unbound)
 		ttm_tt_unpopulate(ttm);
 
+#ifndef __NetBSD__
 	if (!(ttm->page_flags & TTM_PAGE_FLAG_PERSISTENT_SWAP) &&
 	    ttm->swap_storage)
-#ifdef __NetBSD__
-		uao_detach(ttm->swap_storage);
-#else
 		fput(ttm->swap_storage);
 #endif
 
@@ -224,8 +222,10 @@ EXPORT_SYMBOL(ttm_tt_init);
 
 void ttm_tt_fini(struct ttm_tt *ttm)
 {
+#ifdef __NetBSD__
 	uao_detach(ttm->swap_storage);
 	ttm->swap_storage = NULL;
+#endif
 	drm_free_large(ttm->pages);
 	ttm->pages = NULL;
 }
@@ -297,7 +297,10 @@ void ttm_dma_tt_fini(struct ttm_dma_tt *
 {
 	struct ttm_tt *ttm = &ttm_dma->ttm;
 
+#ifdef __NetBSD__
 	uao_detach(ttm->swap_storage);
+	ttm->swap_storage = NULL;
+#endif
 	drm_free_large(ttm->pages);
 	ttm->pages = NULL;
 #ifdef __NetBSD__

Reply via email to