diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c index db63e549fd68..8cee337ed31f 100644 --- a/drivers/media/rc/lirc_dev.c +++ b/drivers/media/rc/lirc_dev.c @@ -242,16 +242,16 @@ static int lirc_allocate_driver(struct lirc_driver *d) ir->d = *d; + device_initialize(&ir->dev); ir->dev.devt = MKDEV(MAJOR(lirc_base_dev), ir->d.minor); ir->dev.class = lirc_class; ir->dev.parent = d->dev; ir->dev.release = lirc_release; dev_set_name(&ir->dev, "lirc%d", ir->d.minor); - device_initialize(&ir->dev); err = lirc_cdev_add(ir); if (err) - goto out_sysfs; + goto out_free_dev; ir->attached = 1; @@ -268,7 +268,7 @@ static int lirc_allocate_driver(struct lirc_driver *d) return minor; out_cdev: cdev_del(&ir->cdev); -out_sysfs: +out_free_dev: put_device(&ir->dev); out_lock: mutex_unlock(&lirc_dev_lock);