summaryrefslogtreecommitdiff
path: root/sys/dev/drm2
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2012-10-01 06:42:07 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2012-10-01 06:42:07 +0000
commit38e19f6b6c17ab84a2c7673e075e29d4016748e2 (patch)
tree27adf62dd475a493e18ea3ed29e97fe08fdfaba0 /sys/dev/drm2
parent6b805de2c1ed679067e9267816dd839daa12a272 (diff)
Notes
Diffstat (limited to 'sys/dev/drm2')
-rw-r--r--sys/dev/drm2/drm_fops.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/sys/dev/drm2/drm_fops.c b/sys/dev/drm2/drm_fops.c
index 00717837041e..2685ff7b2779 100644
--- a/sys/dev/drm2/drm_fops.c
+++ b/sys/dev/drm2/drm_fops.c
@@ -57,12 +57,6 @@ int drm_open_helper(struct cdev *kdev, int flags, int fmt, DRM_STRUCTPROC *p,
return ENOMEM;
}
- retcode = devfs_set_cdevpriv(priv, drm_close);
- if (retcode != 0) {
- free(priv, DRM_MEM_FILES);
- return retcode;
- }
-
DRM_LOCK(dev);
priv->dev = dev;
priv->uid = p->td_ucred->cr_svuid;
@@ -83,7 +77,6 @@ int drm_open_helper(struct cdev *kdev, int flags, int fmt, DRM_STRUCTPROC *p,
/* shared code returns -errno */
retcode = -dev->driver->open(dev, priv);
if (retcode != 0) {
- devfs_clear_cdevpriv();
free(priv, DRM_MEM_FILES);
DRM_UNLOCK(dev);
return retcode;
@@ -96,7 +89,12 @@ int drm_open_helper(struct cdev *kdev, int flags, int fmt, DRM_STRUCTPROC *p,
TAILQ_INSERT_TAIL(&dev->files, priv, link);
DRM_UNLOCK(dev);
kdev->si_drv1 = dev;
- return 0;
+
+ retcode = devfs_set_cdevpriv(priv, drm_close);
+ if (retcode != 0)
+ drm_close(priv);
+
+ return (retcode);
}
static bool