Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/external/bsd/drm2/dist/drm/ttm Actually do DRM_SUSER che...



details:   https://anonhg.NetBSD.org/src/rev/73b48405a59e
branches:  trunk
changeset: 364541:73b48405a59e
user:      riastradh <riastradh%NetBSD.org@localhost>
date:      Mon Aug 27 07:45:12 2018 +0000

description:
Actually do DRM_SUSER check for mapping >1 page in kernel.

diffstat:

 sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c |  11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diffs (41 lines):

diff -r cb55ce63a900 -r 73b48405a59e sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c
--- a/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c  Mon Aug 27 07:45:02 2018 +0000
+++ b/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo_util.c  Mon Aug 27 07:45:12 2018 +0000
@@ -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 <sys/cdefs.h>
-__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 <drm/ttm/ttm_bo_driver.h>
 #include <drm/ttm/ttm_placement.h>
@@ -48,6 +48,7 @@
 
 #ifdef __NetBSD__              /* PMAP_* caching flags for ttm_io_prot */
 #include <uvm/uvm_pmap.h>
+#include <drm/drm_auth_netbsd.h>
 #endif
 
 void ttm_bo_free_old_node(struct ttm_buffer_object *bo)
@@ -723,10 +724,12 @@
                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))
+#endif
                return -EPERM;
-#endif
        (void) ttm_mem_io_lock(man, false);
        ret = ttm_mem_io_reserve(bo->bdev, &bo->mem);
        ttm_mem_io_unlock(man);



Home | Main Index | Thread Index | Old Index