diff options
author | Alexey Khoroshilov <khoroshilov@ispras.ru> | 2012-09-02 00:31:58 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-05 13:44:04 -0700 |
commit | 9a32bb39d6a48d435135695763e5e4a06652eeda (patch) | |
tree | 7f02a8cd4bbeec8e87eced34ca0bc51dd0c812c1 /drivers/char/ppdev.c | |
parent | 0bf5a8be4723fd5f243d9d1ed8e6eb9d81f31cf2 (diff) | |
download | op-kernel-dev-9a32bb39d6a48d435135695763e5e4a06652eeda.zip op-kernel-dev-9a32bb39d6a48d435135695763e5e4a06652eeda.tar.gz |
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')
-rw-r--r-- | drivers/char/ppdev.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c index 3fcf80f..d0d824e 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; } |