Module Name:    src
Committed By:   riastradh
Date:           Sun Jul 30 13:43:49 UTC 2017

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

Log Message:
Fix error branch in ttm_dma_tt_init to avoid double-free.

Should fix symptom of PR kern/52438, but who knows what underlying
problem causes us to reach the error branch in the first place.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 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.9 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.9	Thu Mar  9 08:27:18 2017
+++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c	Sun Jul 30 13:43:48 2017
@@ -284,7 +284,8 @@ fail2: __unused
 fail1:	kmem_free(ttm_dma->dma_segs, (ttm->num_pages *
 		sizeof(ttm_dma->dma_segs[0])));
 fail0:	KASSERT(error);
-	ttm_tt_destroy(ttm);
+	drm_free_large(ttm->pages);
+	uao_detach(ttm->swap_storage);
 	/* XXX errno NetBSD->Linux */
 	return -error;
     }

Reply via email to