Module Name:    src
Committed By:   riastradh
Date:           Wed Jan 22 16:40:54 UTC 2014

Modified Files:
        src/sys/external/bsd/drm2/drm [riastradh-drm2]: drm_drv.c drm_gem_vm.c

Log Message:
Little reference counting fix in drm_mmap.


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.33 -r1.1.2.34 src/sys/external/bsd/drm2/drm/drm_drv.c
cvs rdiff -u -r1.1.2.4 -r1.1.2.5 src/sys/external/bsd/drm2/drm/drm_gem_vm.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/drm/drm_drv.c
diff -u src/sys/external/bsd/drm2/drm/drm_drv.c:1.1.2.33 src/sys/external/bsd/drm2/drm/drm_drv.c:1.1.2.34
--- src/sys/external/bsd/drm2/drm/drm_drv.c:1.1.2.33	Wed Jan 22 16:40:44 2014
+++ src/sys/external/bsd/drm2/drm/drm_drv.c	Wed Jan 22 16:40:53 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_drv.c,v 1.1.2.33 2014/01/22 16:40:44 riastradh Exp $	*/
+/*	$NetBSD: drm_drv.c,v 1.1.2.34 2014/01/22 16:40:53 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.1.2.33 2014/01/22 16:40:44 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_drv.c,v 1.1.2.34 2014/01/22 16:40:53 riastradh Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -924,8 +924,10 @@ map:	vm_prot = ((ISSET(prot, PROT_READ)?
 	/* XXX errno NetBSD->Linux */
 	ret = -uvm_map(&curproc->p_vmspace->vm_map, &vaddr, size, uobj, offset,
 	    align, uvmflag);
-	if (ret)
+	if (ret) {
+		(*uobj->pgops->pgo_detach)(uobj);
 		return ret;
+	}
 
 	/* Success!  */
 	args->dnm_addr = (void *)vaddr;

Index: src/sys/external/bsd/drm2/drm/drm_gem_vm.c
diff -u src/sys/external/bsd/drm2/drm/drm_gem_vm.c:1.1.2.4 src/sys/external/bsd/drm2/drm/drm_gem_vm.c:1.1.2.5
--- src/sys/external/bsd/drm2/drm/drm_gem_vm.c:1.1.2.4	Wed Jan 22 16:40:44 2014
+++ src/sys/external/bsd/drm2/drm/drm_gem_vm.c	Wed Jan 22 16:40:53 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: drm_gem_vm.c,v 1.1.2.4 2014/01/22 16:40:44 riastradh Exp $	*/
+/*	$NetBSD: drm_gem_vm.c,v 1.1.2.5 2014/01/22 16:40:53 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: drm_gem_vm.c,v 1.1.2.4 2014/01/22 16:40:44 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: drm_gem_vm.c,v 1.1.2.5 2014/01/22 16:40:53 riastradh Exp $");
 
 #include <sys/types.h>
 
@@ -107,7 +107,7 @@ drm_gem_mmap_object_locked(struct drm_de
 	KASSERT(obj->dev == dev);
 
 	/* Success!  */
-	drm_gem_object_reference(obj); /* XXX Locking?  */
+	drm_gem_object_reference(obj);
 	*uobjp = &obj->gemo_uvmobj;
 	return 0;
 }

Reply via email to