If driver_register() failed there is no sense to call driver_unregister(). unregister_chrdev() should be called here. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx> --- drivers/ide/ide-tape.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 12fa04997dcc..9ecf4e35adcd 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c @@ -2052,12 +2052,12 @@ static int __init idetape_init(void) error = driver_register(&idetape_driver.gen_driver); if (error) - goto out_free_driver; + goto out_free_chrdev; return 0; -out_free_driver: - driver_unregister(&idetape_driver.gen_driver); +out_free_chrdev: + unregister_chrdev(IDETAPE_MAJOR, "ht"); out_free_class: class_destroy(idetape_sysfs_class); out: -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html