CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: jdolecek Date: Wed Feb 12 20:22:37 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c Log Message: mark case fallthrough to avoid warning To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.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_bo.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.15 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.16 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.15 Sat Feb 2 21:46:27 2019 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c Wed Feb 12 20:22:37 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo.c,v 1.15 2019/02/02 21:46:27 mrg Exp $ */ +/* $NetBSD: ttm_bo.c,v 1.16 2020/02/12 20:22:37 jdolecek Exp $ */ /** * @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.15 2019/02/02 21:46:27 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.16 2020/02/12 20:22:37 jdolecek Exp $"); #define pr_fmt(fmt) "[TTM] " fmt @@ -273,6 +273,7 @@ static int ttm_bo_add_ttm(struct ttm_buf case ttm_bo_type_device: if (zero_alloc) page_flags |= TTM_PAGE_FLAG_ZERO_ALLOC; + /* FALLTHROUGH */ case ttm_bo_type_kernel: bo->ttm = bdev->driver->ttm_tt_create(bdev, bo->num_pages << PAGE_SHIFT, page_flags, glob->dummy_read_page);
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: jmcneill Date: Tue Jan 28 23:21:05 UTC 2020 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c Log Message: ttm_io_prot: follow linux semantics and set either PMAP_WRITE_COMBINE or PMAP_NOCACHE when existing cache flags are not set To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 \ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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_bo_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.14 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.15 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.14 Thu Aug 30 01:19:49 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Tue Jan 28 23:21:05 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo_util.c,v 1.14 2018/08/30 01:19:49 riastradh Exp $ */ +/* $NetBSD: ttm_bo_util.c,v 1.15 2020/01/28 23:21:05 jmcneill Exp $ */ /** * @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.14 2018/08/30 01:19:49 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.15 2020/01/28 23:21:05 jmcneill Exp $"); #include #include @@ -565,17 +565,11 @@ pgprot_t ttm_io_prot(uint32_t caching_fl return tmp; #ifdef __NetBSD__ - switch (caching_flags & TTM_PL_MASK_CACHING) { - case TTM_PL_FLAG_CACHED: - return (tmp | PMAP_WRITE_BACK); - case TTM_PL_FLAG_WC: + tmp &= ~PMAP_CACHE_MASK; + if (caching_flags & TTM_PL_FLAG_WC) return (tmp | PMAP_WRITE_COMBINE); - case TTM_PL_FLAG_UNCACHED: + else return (tmp | PMAP_NOCACHE); - default: - panic("invalid caching flags: %"PRIx32"\n", - (caching_flags & TTM_PL_MASK_CACHING)); - } #else #if defined(__i386__) || defined(__x86_64__) if (caching_flags & TTM_PL_FLAG_WC)
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: mrg Date: Sat Feb 2 21:46:27 UTC 2019 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c Log Message: combine a pair of #ifdef's and make upstream diff slightly less ugly. NFCI. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.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_bo.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.14 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.15 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.14 Mon Aug 27 15:32:39 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c Sat Feb 2 21:46:27 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo.c,v 1.14 2018/08/27 15:32:39 riastradh Exp $ */ +/* $NetBSD: ttm_bo.c,v 1.15 2019/02/02 21:46:27 mrg Exp $ */ /** * @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.14 2018/08/27 15:32:39 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.15 2019/02/02 21:46:27 mrg Exp $"); #define pr_fmt(fmt) "[TTM] " fmt @@ -1624,10 +1624,6 @@ bool ttm_mem_reg_is_pci(struct ttm_bo_de void ttm_bo_unmap_virtual_locked(struct ttm_buffer_object *bo) { -#ifndef __NetBSD__ - struct ttm_bo_device *bdev = bo->bdev; -#endif - #ifdef __NetBSD__ if (bo->mem.bus.is_iomem) { paddr_t start, end, pa; @@ -1654,6 +1650,8 @@ void ttm_bo_unmap_virtual_locked(struct mutex_exit(bo->uvmobj.vmobjlock); } #else + struct ttm_bo_device *bdev = bo->bdev; + drm_vma_node_unmap(>vma_node, bdev->dev_mapping); #endif ttm_mem_io_free_vm(bo);
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Thu Aug 30 01:19:49 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c Log Message: This is not merely `not for NetBSD'; upstream it's #if 0 altogether. Always has been. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 \ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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_bo_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.13 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.14 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.13 Wed Aug 29 19:30:46 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Thu Aug 30 01:19:49 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo_util.c,v 1.13 2018/08/29 19:30:46 mrg Exp $ */ +/* $NetBSD: ttm_bo_util.c,v 1.14 2018/08/30 01:19:49 riastradh Exp $ */ /** * @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.13 2018/08/29 19:30:46 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.14 2018/08/30 01:19:49 riastradh Exp $"); #include #include @@ -703,7 +703,7 @@ int ttm_bo_kmap(struct ttm_buffer_object return -EINVAL; if (start_page > bo->num_pages) return -EINVAL; -#ifndef __NetBSD__ +#if 0 if (num_pages > 1 && !capable(CAP_SYS_ADMIN)) return -EPERM; #endif
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: mrg Date: Wed Aug 29 19:30:46 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c Log Message: restore #ifndef __NetBSD__ code so drm on nouveau has a chance. from @riastradh. display is still black, but tools some times try to work now. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 \ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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_bo_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.12 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.13 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.12 Mon Aug 27 14:51:33 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Wed Aug 29 19:30:46 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo_util.c,v 1.12 2018/08/27 14:51:33 riastradh Exp $ */ +/* $NetBSD: ttm_bo_util.c,v 1.13 2018/08/29 19:30:46 mrg Exp $ */ /** * @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.12 2018/08/27 14:51:33 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.13 2018/08/29 19:30:46 mrg Exp $"); #include #include @@ -703,12 +703,10 @@ int ttm_bo_kmap(struct ttm_buffer_object return -EINVAL; if (start_page > bo->num_pages) return -EINVAL; -#ifdef __NetBSD__ - if (num_pages > 1 && !DRM_SUSER()) -#else +#ifndef __NetBSD__ if (num_pages > 1 && !capable(CAP_SYS_ADMIN)) -#endif return -EPERM; +#endif (void) ttm_mem_io_lock(man, false); ret = ttm_mem_io_reserve(bo->bdev, >mem); ttm_mem_io_unlock(man);
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Mon Aug 27 14:41:10 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_memory.c Log Message: Destroy glob->lock if we init it. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_memory.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_memory.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_memory.c:1.3 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_memory.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_memory.c:1.3 Mon Aug 27 04:58:37 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_memory.c Mon Aug 27 14:41:10 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_memory.c,v 1.3 2018/08/27 04:58:37 riastradh Exp $ */ +/* $NetBSD: ttm_memory.c,v 1.4 2018/08/27 14:41:10 riastradh Exp $ */ /** * @@ -28,7 +28,7 @@ **/ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_memory.c,v 1.3 2018/08/27 04:58:37 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_memory.c,v 1.4 2018/08/27 14:41:10 riastradh Exp $"); #define pr_fmt(fmt) "[TTM] " fmt @@ -454,6 +454,7 @@ void ttm_mem_global_release(struct ttm_m kobject_put(>kobj); #endif } + spin_lock_destroy(>lock); #ifdef __NetBSD__ kfree(glob); #else
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:53:39 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_execbuf_util.c Log Message: Mark unused variable. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 \ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_execbuf_util.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_execbuf_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_execbuf_util.c:1.3 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_execbuf_util.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_execbuf_util.c:1.3 Mon Aug 27 04:58:37 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_execbuf_util.c Mon Aug 27 07:53:39 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_execbuf_util.c,v 1.3 2018/08/27 04:58:37 riastradh Exp $ */ +/* $NetBSD: ttm_execbuf_util.c,v 1.4 2018/08/27 07:53:39 riastradh Exp $ */ /** * @@ -28,7 +28,7 @@ **/ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_execbuf_util.c,v 1.3 2018/08/27 04:58:37 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_execbuf_util.c,v 1.4 2018/08/27 07:53:39 riastradh Exp $"); #include #include @@ -192,7 +192,7 @@ void ttm_eu_fence_buffer_objects(struct struct ttm_buffer_object *bo; struct ttm_bo_global *glob; struct ttm_bo_device *bdev; - struct ttm_bo_driver *driver; + struct ttm_bo_driver *driver __unused; if (list_empty(list)) return;
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:52:53 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c Log Message: Go back from DRM_HZ to HZ, seems fine. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.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_bo.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.11 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.12 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.11 Mon Aug 27 04:58:37 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c Mon Aug 27 07:52:53 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo.c,v 1.11 2018/08/27 04:58:37 riastradh Exp $ */ +/* $NetBSD: ttm_bo.c,v 1.12 2018/08/27 07:52:53 riastradh Exp $ */ /** * @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.11 2018/08/27 04:58:37 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.12 2018/08/27 07:52:53 riastradh Exp $"); #define pr_fmt(fmt) "[TTM] " fmt @@ -501,7 +501,7 @@ static void ttm_bo_cleanup_refs_or_queue spin_unlock(>lru_lock); schedule_delayed_work(>wq, - ((DRM_HZ / 100) < 1) ? 1 : DRM_HZ / 100); + ((HZ / 100) < 1) ? 1 : HZ / 100); } /** @@ -651,7 +651,7 @@ static void ttm_bo_delayed_workqueue(str if (ttm_bo_delayed_delete(bdev, false)) { schedule_delayed_work(>wq, - ((DRM_HZ / 100) < 1) ? 1 : DRM_HZ / 100); + ((HZ / 100) < 1) ? 1 : HZ / 100); } } @@ -695,7 +695,7 @@ void ttm_bo_unlock_delayed_workqueue(str { if (resched) schedule_delayed_work(>wq, - ((DRM_HZ / 100) < 1) ? 1 : DRM_HZ / 100); + ((HZ / 100) < 1) ? 1 : HZ / 100); } EXPORT_SYMBOL(ttm_bo_unlock_delayed_workqueue);
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:53:16 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c Log Message: Need for fence stuff. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.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_bo.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.12 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.13 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.12 Mon Aug 27 07:52:53 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c Mon Aug 27 07:53:16 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo.c,v 1.12 2018/08/27 07:52:53 riastradh Exp $ */ +/* $NetBSD: ttm_bo.c,v 1.13 2018/08/27 07:53:16 riastradh Exp $ */ /** * @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.12 2018/08/27 07:52:53 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1.13 2018/08/27 07:53:16 riastradh Exp $"); #define pr_fmt(fmt) "[TTM] " fmt @@ -54,6 +54,7 @@ __KERNEL_RCSID(0, "$NetBSD: ttm_bo.c,v 1 #include #include #include +#include #define TTM_ASSERT_LOCKED(param) #define TTM_DEBUG(fmt, arg...) do {} while (0)
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:45:02 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c Log Message: Need for mb. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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_bo_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.7 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.8 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.7 Mon Aug 27 04:58:37 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Mon Aug 27 07:45:02 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo_util.c,v 1.7 2018/08/27 04:58:37 riastradh Exp $ */ +/* $NetBSD: ttm_bo_util.c,v 1.8 2018/08/27 07:45:02 riastradh Exp $ */ /** * @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.7 2018/08/27 04:58:37 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.8 2018/08/27 07:45:02 riastradh Exp $"); #include #include @@ -44,6 +44,7 @@ __KERNEL_RCSID(0, "$NetBSD: ttm_bo_util. #include #include #include +#include #ifdef __NetBSD__ /* PMAP_* caching flags for ttm_io_prot */ #include
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:45:12 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c Log Message: Actually do DRM_SUSER check for mapping >1 page in kernel. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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_bo_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.8 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.9 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.8 Mon Aug 27 07:45:02 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Mon Aug 27 07:45:12 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo_util.c,v 1.8 2018/08/27 07:45:02 riastradh Exp $ */ +/* $NetBSD: ttm_bo_util.c,v 1.9 2018/08/27 07:45:12 riastradh Exp $ */ /** * @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.8 2018/08/27 07:45:02 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.9 2018/08/27 07:45:12 riastradh Exp $"); #include #include @@ -48,6 +48,7 @@ __KERNEL_RCSID(0, "$NetBSD: ttm_bo_util. #ifdef __NetBSD__ /* PMAP_* caching flags for ttm_io_prot */ #include +#include #endif void ttm_bo_free_old_node(struct ttm_buffer_object *bo) @@ -723,10 +724,12 @@ int ttm_bo_kmap(struct ttm_buffer_object return -EINVAL; if (start_page > bo->num_pages) return -EINVAL; -#if 0 +#ifdef __NetBSD__ + if (num_pages > 1 && !DRM_SUSER()) +#else if (num_pages > 1 && !capable(CAP_SYS_ADMIN)) - return -EPERM; #endif + return -EPERM; (void) ttm_mem_io_lock(man, false); ret = ttm_mem_io_reserve(bo->bdev, >mem); ttm_mem_io_unlock(man);
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Mon Aug 27 07:45:23 UTC 2018 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c Log Message: Handle removal of local variable in merge. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 \ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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_bo_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.9 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.10 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.9 Mon Aug 27 07:45:12 2018 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Mon Aug 27 07:45:23 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo_util.c,v 1.9 2018/08/27 07:45:12 riastradh Exp $ */ +/* $NetBSD: ttm_bo_util.c,v 1.10 2018/08/27 07:45:23 riastradh Exp $ */ /** * @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.9 2018/08/27 07:45:12 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo_util.c,v 1.10 2018/08/27 07:45:23 riastradh Exp $"); #include #include @@ -536,7 +536,7 @@ static int ttm_buffer_object_transfer(st #ifdef __NetBSD__ linux_mutex_init(>wu_mutex); drm_vma_node_init(>vma_node); - uvm_obj_init(>uvmobj, bdev->driver->ttm_uvm_ops, true, 1); + uvm_obj_init(>uvmobj, bo->bdev->driver->ttm_uvm_ops, true, 1); mutex_obj_hold(bo->uvmobj.vmobjlock); uvm_obj_setlock(>uvmobj, bo->uvmobj.vmobjlock); #else
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
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; }
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Sat Dec 24 15:46:50 UTC 2016 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_tt.c Log Message: Guarantee no zero-size uao/kmem allocations via ttm. It may be that all callers guarantee no zero-size ttm objects, but I can't prove that in five minutes of browsing callers. Rather than add a KASSERT, lacking proof, we'll add a warning message so that if it does happen then it happens noisily, but we'll also prevent the bad consequences of passing zero into uao_create by rounding up to a harmless nonzero allocation. XXX pullup-7 To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 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.7 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.8 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.7 Sun Apr 24 04:26:12 2016 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c Sat Dec 24 15:46:50 2016 @@ -203,6 +203,9 @@ int ttm_tt_init(struct ttm_tt *ttm, stru ttm->dummy_read_page = dummy_read_page; ttm->state = tt_unpopulated; #ifdef __NetBSD__ + WARN(size == 0, "zero-size allocation in %s, please file a NetBSD PR", + __func__); /* paranoia -- can't prove in five minutes */ + size = MAX(size, 1); ttm->swap_storage = uao_create(roundup2(size, PAGE_SIZE), 0); uao_set_pgfl(ttm->swap_storage, bus_dmamem_pgfl(bdev->dmat)); #else @@ -245,6 +248,9 @@ int ttm_dma_tt_init(struct ttm_dma_tt *t ttm->dummy_read_page = dummy_read_page; ttm->state = tt_unpopulated; #ifdef __NetBSD__ + WARN(size == 0, "zero-size allocation in %s, please file a NetBSD PR", + __func__); /* paranoia -- can't prove in five minutes */ + size = MAX(size, 1); ttm->swap_storage = uao_create(roundup2(size, PAGE_SIZE), 0); uao_set_pgfl(ttm->swap_storage, bus_dmamem_pgfl(bdev->dmat)); #else
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: jmcneill Date: Sat Oct 17 21:12:37 UTC 2015 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c Log Message: vunmap takes 2 parameters on netbsd To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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_bo_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.5 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.6 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.5 Mon Apr 20 19:17:04 2015 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Sat Oct 17 21:12:37 2015 @@ -371,7 +371,11 @@ static int ttm_copy_ttm_io_page(struct t kunmap_atomic(src); #else if (pgprot_val(prot) != pgprot_val(PAGE_KERNEL)) +#ifdef __NetBSD__ + vunmap(src, 1); +#else vunmap(src); +#endif else kunmap(s); #endif
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Mon Apr 20 20:15:22 UTC 2015 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c Log Message: Make sure mem.bus.is_iomem is initialized. PR 49833 To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.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_bo.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.9 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.10 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.9 Fri Apr 10 17:28:42 2015 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c Mon Apr 20 20:15:22 2015 @@ -1021,6 +1021,7 @@ static int ttm_bo_move_buffer(struct ttm mem.num_pages = bo-num_pages; mem.size = mem.num_pages PAGE_SHIFT; mem.page_alignment = bo-mem.page_alignment; + mem.bus.is_iomem = false; mem.bus.io_reserved_vm = false; mem.bus.io_reserved_count = 0; /*
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Mon Apr 20 19:17:04 UTC 2015 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c Log Message: First attempt to make ttm_buffer_object_transfer less bogus. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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_bo_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.4 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.4 Fri Jul 18 03:11:55 2014 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Mon Apr 20 19:17:04 2015 @@ -524,8 +524,13 @@ static int ttm_buffer_object_transfer(st INIT_LIST_HEAD(fbo-swap); INIT_LIST_HEAD(fbo-io_reserve_lru); #ifdef __NetBSD__ + linux_mutex_init(fbo-wu_mutex); drm_vma_node_init(fbo-vma_node); + uvm_obj_init(fbo-uvmobj, bdev-driver-ttm_uvm_ops, true, 1); + mutex_obj_hold(bo-uvmobj.vmobjlock); + uvm_obj_setlock(fbo-uvmobj, bo-uvmobj.vmobjlock); #else + mutex_init(fbo-wu_mutex); drm_vma_node_reset(fbo-vma_node); #endif atomic_set(fbo-cpu_writers, 0);
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Mon Aug 18 02:43:27 UTC 2014 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c Log Message: Simplify previous. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.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_bo.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.5 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.6 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.5 Mon Aug 18 01:21:03 2014 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c Mon Aug 18 02:43:27 2014 @@ -270,16 +270,6 @@ static int ttm_bo_add_ttm(struct ttm_buf page_flags, glob-dummy_read_page); if (unlikely(bo-ttm == NULL)) ret = -ENOMEM; -#ifdef __NetBSD__ - /* - * XXX This is gross. We ought to do it the other way - * around: set the uao to have the main uvm object's - * lock. However, uvm_obj_setlock is not safe on - * uvm_aobjs. - */ - mutex_obj_hold(bo-ttm-swap_storage-vmobjlock); - uvm_obj_setlock(bo-uvmobj, bo-ttm-swap_storage-vmobjlock); -#endif break; case ttm_bo_type_sg: bo-ttm = bdev-driver-ttm_tt_create(bdev, bo-num_pages PAGE_SHIFT, @@ -290,11 +280,6 @@ static int ttm_bo_add_ttm(struct ttm_buf break; } bo-ttm-sg = bo-sg; -#ifdef __NetBSD__ - /* XXX This is gross too -- see above. */ - mutex_obj_hold(bo-ttm-swap_storage-vmobjlock); - uvm_obj_setlock(bo-uvmobj, bo-ttm-swap_storage-vmobjlock); -#endif break; default: pr_err(Illegal buffer object type\n); @@ -302,7 +287,21 @@ static int ttm_bo_add_ttm(struct ttm_buf break; } +#ifdef __NetBSD__ + if (ret) + return ret; + + /* + * XXX This is gross. We ought to do it the other way around: + * set the uao to have the main uvm object's lock. However, + * uvm_obj_setlock is not safe on uvm_aobjs. + */ + mutex_obj_hold(bo-ttm-swap_storage-vmobjlock); + uvm_obj_setlock(bo-uvmobj, bo-ttm-swap_storage-vmobjlock); + return 0; +#else return ret; +#endif } static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Sat Jul 26 06:34:12 UTC 2014 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c Log Message: Don't ttm_tt_destroy bo-ttm if bo-destroy will destroy it too. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.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_bo.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.2 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c Sat Jul 26 06:34:12 2014 @@ -159,7 +159,7 @@ static void ttm_bo_release_list(struct k BUG_ON(!list_empty(bo-lru)); BUG_ON(!list_empty(bo-ddestroy)); - if (bo-ttm) + if (bo-destroy == NULL bo-ttm) ttm_tt_destroy(bo-ttm); atomic_dec(bo-glob-bo_count); if (bo-resv == bo-ttm_resv)
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: rjs Date: Sat Jul 26 12:27:57 UTC 2014 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_tt.c Log Message: Fix non debug build. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 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.4 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.5 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.4 Tue Jul 22 15:15:22 2014 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c Sat Jul 26 12:27:57 2014 @@ -316,7 +316,7 @@ EXPORT_SYMBOL(ttm_dma_tt_fini); void ttm_tt_unbind(struct ttm_tt *ttm) { - int ret; + int ret __diagused; if (ttm-state == tt_bound) { ret = ttm-func-unbind(ttm);
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Sun Jul 27 00:40:40 UTC 2014 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo.c ttm_tt.c Log Message: Revert ttm_bo.c 1.3 and try to fix the double-free properly. bo-destroy doesn't ttm_tt_destroy or ttm_tt_fini anything. Trouble is that ttm_tt_fini expects the swap storage to still be there, and ttm_tt_destroy -- which is what calls ttm_tt_fini by way of ttm-func-destroy -- has already nulled it out. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c cvs rdiff -u -r1.5 -r1.6 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_bo.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.3 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:1.3 Sat Jul 26 06:34:12 2014 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c Sun Jul 27 00:40:39 2014 @@ -159,7 +159,7 @@ static void ttm_bo_release_list(struct k BUG_ON(!list_empty(bo-lru)); BUG_ON(!list_empty(bo-ddestroy)); - if (bo-destroy == NULL bo-ttm) + if (bo-ttm) ttm_tt_destroy(bo-ttm); atomic_dec(bo-glob-bo_count); if (bo-resv == bo-ttm_resv) 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.5 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.6 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c:1.5 Sat Jul 26 12:27:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c Sun Jul 27 00:40:39 2014 @@ -185,9 +185,9 @@ void ttm_tt_destroy(struct ttm_tt *ttm) if (!(ttm-page_flags TTM_PAGE_FLAG_PERSISTENT_SWAP) ttm-swap_storage) fput(ttm-swap_storage); -#endif ttm-swap_storage = NULL; +#endif ttm-func-destroy(ttm); }
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
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__
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Thu Jul 17 17:19:42 UTC 2014 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_tt.c Log Message: Don't forget to advance the array index as we walk the queue... To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 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.2 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.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_tt.c Thu Jul 17 17:19:42 2014 @@ -366,6 +366,7 @@ int ttm_tt_swapin(struct ttm_tt *ttm) KASSERT(i ttm-num_pages); KASSERT(ttm-pages[i] == NULL); ttm-pages[i] = container_of(page, struct page, p_vmp); + i++; } KASSERT(i == ttm-num_pages);
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Fri Jul 18 00:00:51 UTC 2014 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c Log Message: We need just a VA, not wired physical pages too. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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_bo_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.2 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.3 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Fri Jul 18 00:00:51 2014 @@ -666,7 +666,7 @@ static int ttm_bo_kmap_ttm(struct ttm_bu KASSERT(start_page = (ttm-num_pages - num_pages)); prot = ttm_io_prot(mem-placement, (VM_PROT_READ | VM_PROT_WRITE)); vaddr = uvm_km_alloc(kernel_map, (num_pages PAGE_SHIFT), PAGE_SIZE, - UVM_KMF_WIRED | UVM_KMF_VAONLY | UVM_KMF_CANFAIL | UVM_KMF_WAITVA); + UVM_KMF_VAONLY | UVM_KMF_CANFAIL | UVM_KMF_WAITVA); if (vaddr == 0) return -ENOMEM; for (i = 0; i num_pages; i++)
CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm
Module Name:src Committed By: riastradh Date: Fri Jul 18 03:11:55 UTC 2014 Modified Files: src/sys/external/bsd/drm2/dist/drm/ttm: ttm_bo_util.c Log Message: Don't forget to pmap_update after pmap_kremove! To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.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_bo_util.c diff -u src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.3 src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.4 --- src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c:1.3 Fri Jul 18 00:00:51 2014 +++ src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c Fri Jul 18 03:11:55 2014 @@ -759,6 +759,7 @@ void ttm_bo_kunmap(struct ttm_bo_kmap_ob case ttm_bo_map_vmap: #ifdef __NetBSD__ pmap_kremove((vaddr_t)map-virtual, map-u.uvm.vsize); + pmap_update(pmap_kernel()); uvm_km_free(kernel_map, (vaddr_t)map-virtual, map-u.uvm.vsize, UVM_KMF_VAONLY); #else