return -EINVAL;
mutex_lock(&rdev->lock);
- if (!rdev->users++)
+ if (!rdev->users++ && rdev->open != NULL)
rval = rdev->open(rdev);
if (rval)
if (rdev) {
mutex_lock(&rdev->lock);
- if (!--rdev->users)
+ if (!--rdev->users && rdev->close != NULL)
rdev->close(rdev);
mutex_unlock(&rdev->lock);