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__