Fix calls to device_busy() and device_unbusy() so they match up properly.

This commit is contained in:
Doug Rabson 2000-05-29 11:24:07 +00:00
parent db21bb3529
commit bf434e5c5b
2 changed files with 13 additions and 6 deletions

View file

@ -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);

View file

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