From bf434e5c5b960c4d85efa4f44c3453039cd4d976 Mon Sep 17 00:00:00 2001 From: Doug Rabson Date: Mon, 29 May 2000 11:24:07 +0000 Subject: [PATCH] Fix calls to device_busy() and device_unbusy() so they match up properly. --- bsd/gamma/gamma_drv.c | 9 ++++++--- bsd/tdfx/tdfx_drv.c | 10 +++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/bsd/gamma/gamma_drv.c b/bsd/gamma/gamma_drv.c index e155532e..fe71737a 100644 --- a/bsd/gamma/gamma_drv.c +++ b/bsd/gamma/gamma_drv.c @@ -154,6 +154,8 @@ static int gamma_setup(drm_device_t *dev) { int i; + device_busy(dev->device); + atomic_set(&dev->ioctl_count, 0); atomic_set(&dev->vma_count, 0); dev->buf_use = 0; @@ -319,6 +321,8 @@ gamma_takedown(drm_device_t *dev) } lockmgr(&dev->dev_lock, LK_RELEASE, 0, curproc); + device_unbusy(dev->device); + return 0; } @@ -385,6 +389,7 @@ gamma_cleanup(device_t nbdev) DRM_INFO("Module unloaded\n"); } #endif + device_busy(dev->device); gamma_takedown(dev); } @@ -444,8 +449,7 @@ gamma_open(dev_t kdev, int flags, int fmt, struct proc *p) } simple_unlock(&dev->count_lock); } - if (retcode) - device_unbusy(dev->device); + device_unbusy(dev->device); return retcode; } @@ -469,7 +473,6 @@ gamma_close(dev_t kdev, int flags, int fmt, struct proc *p) return EBUSY; } simple_unlock(&dev->count_lock); - device_unbusy(dev->device); return gamma_takedown(dev); } simple_unlock(&dev->count_lock); diff --git a/bsd/tdfx/tdfx_drv.c b/bsd/tdfx/tdfx_drv.c index 991e92ac..573cfcf1 100644 --- a/bsd/tdfx/tdfx_drv.c +++ b/bsd/tdfx/tdfx_drv.c @@ -161,6 +161,8 @@ tdfx_setup(drm_device_t *dev) { int i; + device_busy(dev->device); + atomic_set(&dev->ioctl_count, 0); atomic_set(&dev->vma_count, 0); dev->buf_use = 0; @@ -309,6 +311,8 @@ tdfx_takedown(drm_device_t *dev) wakeup(&dev->lock.lock_queue); } lockmgr(&dev->dev_lock, LK_RELEASE, 0, curproc); + + device_unbusy(dev->device); return 0; } @@ -368,6 +372,7 @@ tdfx_cleanup(device_t nbdev) DRM_INFO("Module unloaded\n"); + device_busy(dev->device); tdfx_takedown(dev); } @@ -418,8 +423,7 @@ tdfx_open(dev_t kdev, int flags, int fmt, struct proc *p) } simple_unlock(&dev->count_lock); } - if (retcode) - device_unbusy(dev->device); + device_unbusy(dev->device); return retcode; } @@ -443,11 +447,11 @@ tdfx_close(dev_t kdev, int flags, int fmt, struct proc *p) return EBUSY; } simple_unlock(&dev->count_lock); - device_unbusy(dev->device); return tdfx_takedown(dev); } simple_unlock(&dev->count_lock); } + return retcode; }