CVS commit: src/sys/external/bsd/drm2/dist/drm/ttm

2020-02-12 Thread Jaromir Dolecek
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

2020-01-28 Thread Jared D. McNeill
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

2019-02-02 Thread matthew green
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

2018-08-29 Thread Taylor R Campbell
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

2018-08-29 Thread matthew green
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

2018-08-27 Thread Taylor R Campbell
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

2018-08-27 Thread Taylor R Campbell
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

2018-08-27 Thread Taylor R Campbell
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

2018-08-27 Thread Taylor R Campbell
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

2018-08-27 Thread Taylor R Campbell
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

2018-08-27 Thread Taylor R Campbell
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

2018-08-27 Thread Taylor R Campbell
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

2017-07-30 Thread Taylor R Campbell
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

2016-12-24 Thread Taylor R Campbell
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

2015-10-17 Thread Jared D. McNeill
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

2015-04-20 Thread Taylor R Campbell
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

2015-04-20 Thread Taylor R Campbell
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

2014-08-17 Thread Taylor R Campbell
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

2014-07-26 Thread Taylor R Campbell
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

2014-07-26 Thread Robert Swindells
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

2014-07-26 Thread Taylor R Campbell
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

2014-07-22 Thread Taylor R Campbell
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

2014-07-17 Thread Taylor R Campbell
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

2014-07-17 Thread Taylor R Campbell
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

2014-07-17 Thread Taylor R Campbell
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