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;
}