Module Name:    src
Committed By:   snj
Date:           Thu Feb 11 23:49:52 UTC 2016

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo [netbsd-7]:
            nouveau_engine_fifo_base.c
        src/sys/external/bsd/drm2/dist/drm/nouveau/core/include/engine 
[netbsd-7]:
            fifo.h

Log Message:
Pull up following revision(s) (requested by riastradh in ticket #1116):
        
sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c:
 revision 1.4
        sys/external/bsd/drm2/dist/drm/nouveau/core/include/engine/fifo.h: 
revision 1.4
dtor gets called if ctor fails.  Make it work in that case.


To generate a diff of this commit:
cvs rdiff -u -r1.2.4.1 -r1.2.4.2 \
    
src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c
cvs rdiff -u -r1.2 -r1.2.4.1 \
    src/sys/external/bsd/drm2/dist/drm/nouveau/core/include/engine/fifo.h

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/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c:1.2.4.1 src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c:1.2.4.2
--- src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c:1.2.4.1	Sun Sep 21 17:41:53 2014
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/engine/fifo/nouveau_engine_fifo_base.c	Thu Feb 11 23:49:52 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_engine_fifo_base.c,v 1.2.4.1 2014/09/21 17:41:53 snj Exp $	*/
+/*	$NetBSD: nouveau_engine_fifo_base.c,v 1.2.4.2 2016/02/11 23:49:52 snj Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_base.c,v 1.2.4.1 2014/09/21 17:41:53 snj Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_engine_fifo_base.c,v 1.2.4.2 2016/02/11 23:49:52 snj Exp $");
 
 #include <core/client.h>
 #include <core/object.h>
@@ -98,6 +98,7 @@ nouveau_fifo_channel_create_(struct nouv
 	    addr + (chan->chid * size), size, 0, &chan->bsh);
 	if (ret)
 		return ret;
+	chan->mapped = true;
 #else
 	chan->user = ioremap(nv_device_resource_start(device, bar) + addr +
 			     (chan->chid * size), size);
@@ -118,7 +119,10 @@ nouveau_fifo_channel_destroy(struct nouv
 	unsigned long flags;
 
 #ifdef __NetBSD__
-	bus_space_unmap(chan->bst, chan->bsh, chan->size);
+	if (chan->mapped) {
+		bus_space_unmap(chan->bst, chan->bsh, chan->size);
+		chan->mapped = false;
+	}
 #else
 	iounmap(chan->user);
 #endif

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/core/include/engine/fifo.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/core/include/engine/fifo.h:1.2 src/sys/external/bsd/drm2/dist/drm/nouveau/core/include/engine/fifo.h:1.2.4.1
--- src/sys/external/bsd/drm2/dist/drm/nouveau/core/include/engine/fifo.h:1.2	Wed Aug  6 15:01:33 2014
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/core/include/engine/fifo.h	Thu Feb 11 23:49:52 2016
@@ -12,6 +12,7 @@ struct nouveau_fifo_chan {
 #ifdef __NetBSD__
 	bus_space_tag_t bst;
 	bus_space_handle_t bsh;
+	bool mapped;
 #else
 	void __iomem *user;
 #endif

Reply via email to