diff options
| author | Hans Petter Selasky <hselasky@FreeBSD.org> | 2012-10-01 06:42:07 +0000 |
|---|---|---|
| committer | Hans Petter Selasky <hselasky@FreeBSD.org> | 2012-10-01 06:42:07 +0000 |
| commit | 38e19f6b6c17ab84a2c7673e075e29d4016748e2 (patch) | |
| tree | 27adf62dd475a493e18ea3ed29e97fe08fdfaba0 /sys/dev/drm2 | |
| parent | 6b805de2c1ed679067e9267816dd839daa12a272 (diff) | |
Notes
Diffstat (limited to 'sys/dev/drm2')
| -rw-r--r-- | sys/dev/drm2/drm_fops.c | 14 |
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 |
