path: root/drivers/char/ppdev.c
diff options
authorAlexey Khoroshilov <khoroshilov@ispras.ru>2012-09-02 00:31:58 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-09-05 13:44:04 -0700
commit9a32bb39d6a48d435135695763e5e4a06652eeda (patch)
tree7f02a8cd4bbeec8e87eced34ca0bc51dd0c812c1 /drivers/char/ppdev.c
parent0bf5a8be4723fd5f243d9d1ed8e6eb9d81f31cf2 (diff)
ppdev: ppdev_init: do not return zero in case of failure
Error handling of parport_register_driver() in ppdev_init() is broken because it deallocates all resources but still returns zero. Currently parport_register_driver() always succeeds. Nevertheless it is worth to fix the issue. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/char/ppdev.c')
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c
index 3fcf80ff12f2..d0d824ebf2c1 100644
--- a/drivers/char/ppdev.c
+++ b/drivers/char/ppdev.c
@@ -783,7 +783,8 @@ static int __init ppdev_init (void)
err = PTR_ERR(ppdev_class);
goto out_chrdev;
- if (parport_register_driver(&pp_driver)) {
+ err = parport_register_driver(&pp_driver);
+ if (err < 0) {
printk (KERN_WARNING CHRDEV ": unable to register with parport\n");
goto out_class;