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; }