Merge tag 'media/v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[cascardo/linux.git] / drivers / staging / media / lirc / lirc_parallel.c
index 64d99ec..bfb76a4 100644 (file)
@@ -650,7 +650,7 @@ static int __init lirc_parallel_init(void)
        if (!pport) {
                pr_notice("no port at %x found\n", io);
                result = -ENXIO;
        if (!pport) {
                pr_notice("no port at %x found\n", io);
                result = -ENXIO;
-               goto exit_device_put;
+               goto exit_device_del;
        }
        ppdevice = parport_register_device(pport, LIRC_DRIVER_NAME,
                                           pf, kf, lirc_lirc_irq_handler, 0,
        }
        ppdevice = parport_register_device(pport, LIRC_DRIVER_NAME,
                                           pf, kf, lirc_lirc_irq_handler, 0,
@@ -659,7 +659,7 @@ static int __init lirc_parallel_init(void)
        if (!ppdevice) {
                pr_notice("parport_register_device() failed\n");
                result = -ENXIO;
        if (!ppdevice) {
                pr_notice("parport_register_device() failed\n");
                result = -ENXIO;
-               goto exit_device_put;
+               goto exit_device_del;
        }
        if (parport_claim(ppdevice) != 0)
                goto skip_init;
        }
        if (parport_claim(ppdevice) != 0)
                goto skip_init;
@@ -678,7 +678,7 @@ static int __init lirc_parallel_init(void)
                parport_release(pport);
                parport_unregister_device(ppdevice);
                result = -EIO;
                parport_release(pport);
                parport_unregister_device(ppdevice);
                result = -EIO;
-               goto exit_device_put;
+               goto exit_device_del;
        }
 
 #endif
        }
 
 #endif
@@ -695,11 +695,13 @@ static int __init lirc_parallel_init(void)
                pr_notice("register_chrdev() failed\n");
                parport_unregister_device(ppdevice);
                result = -EIO;
                pr_notice("register_chrdev() failed\n");
                parport_unregister_device(ppdevice);
                result = -EIO;
-               goto exit_device_put;
+               goto exit_device_del;
        }
        pr_info("installed using port 0x%04x irq %d\n", io, irq);
        return 0;
 
        }
        pr_info("installed using port 0x%04x irq %d\n", io, irq);
        return 0;
 
+exit_device_del:
+       platform_device_del(lirc_parallel_dev);
 exit_device_put:
        platform_device_put(lirc_parallel_dev);
 exit_driver_unregister:
 exit_device_put:
        platform_device_put(lirc_parallel_dev);
 exit_driver_unregister: