[media] staging: lirc: add missing platform_device_del() on error
Add the missing platform_device_del() before return from lirc_parallel_init() in the error handling case. Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
This commit is contained in:
parent
4a86bc1008
commit
0ea92c50ad
@ -650,7 +650,7 @@ static int __init lirc_parallel_init(void)
|
|||||||
if (!pport) {
|
if (!pport) {
|
||||||
pr_notice("no port at %x found\n", io);
|
pr_notice("no port at %x found\n", io);
|
||||||
result = -ENXIO;
|
result = -ENXIO;
|
||||||
goto exit_device_put;
|
goto exit_device_del;
|
||||||
}
|
}
|
||||||
ppdevice = parport_register_device(pport, LIRC_DRIVER_NAME,
|
ppdevice = parport_register_device(pport, LIRC_DRIVER_NAME,
|
||||||
pf, kf, lirc_lirc_irq_handler, 0,
|
pf, kf, lirc_lirc_irq_handler, 0,
|
||||||
@ -659,7 +659,7 @@ static int __init lirc_parallel_init(void)
|
|||||||
if (!ppdevice) {
|
if (!ppdevice) {
|
||||||
pr_notice("parport_register_device() failed\n");
|
pr_notice("parport_register_device() failed\n");
|
||||||
result = -ENXIO;
|
result = -ENXIO;
|
||||||
goto exit_device_put;
|
goto exit_device_del;
|
||||||
}
|
}
|
||||||
if (parport_claim(ppdevice) != 0)
|
if (parport_claim(ppdevice) != 0)
|
||||||
goto skip_init;
|
goto skip_init;
|
||||||
@ -678,7 +678,7 @@ static int __init lirc_parallel_init(void)
|
|||||||
parport_release(pport);
|
parport_release(pport);
|
||||||
parport_unregister_device(ppdevice);
|
parport_unregister_device(ppdevice);
|
||||||
result = -EIO;
|
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");
|
pr_notice("register_chrdev() failed\n");
|
||||||
parport_unregister_device(ppdevice);
|
parport_unregister_device(ppdevice);
|
||||||
result = -EIO;
|
result = -EIO;
|
||||||
goto exit_device_put;
|
goto exit_device_del;
|
||||||
}
|
}
|
||||||
pr_info("installed using port 0x%04x irq %d\n", io, irq);
|
pr_info("installed using port 0x%04x irq %d\n", io, irq);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
exit_device_del:
|
||||||
|
platform_device_del(lirc_parallel_dev);
|
||||||
exit_device_put:
|
exit_device_put:
|
||||||
platform_device_put(lirc_parallel_dev);
|
platform_device_put(lirc_parallel_dev);
|
||||||
exit_driver_unregister:
|
exit_driver_unregister:
|
||||||
|
Loading…
Reference in New Issue
Block a user