diff --git a/drivers/media/IR/lirc_dev.c b/drivers/media/IR/lirc_dev.c index e3dbf12d00d9..8fdb7e11a138 100644 --- a/drivers/media/IR/lirc_dev.c +++ b/drivers/media/IR/lirc_dev.c @@ -402,7 +402,6 @@ int lirc_unregister_driver(int minor) ir->d.set_use_dec(ir->d.data); module_put(ir->cdev.owner); mutex_unlock(&ir->irctl_lock); - cdev_del(&ir->cdev); } else { lirc_irctl_cleanup(ir); cdev_del(&ir->cdev); @@ -492,6 +491,7 @@ int lirc_dev_fop_close(struct inode *inode, struct file *file) module_put(ir->cdev.owner); } else { lirc_irctl_cleanup(ir); + cdev_del(&ir->cdev); irctls[ir->d.minor] = NULL; kfree(ir); }