pi433_init had "unregister_chrdev" called twice. Remove it using goto statements. Signed-off-by: Shahar Avidar <ikobh7@xxxxxxxxx> --- v2->v1: Followed by Dan Carpenter's <dan.carpenter@xxxxxxxxxx> comments: - Remove empty "fail" goto tag. - Reorder pi433 init & exit calls so they have reverse order. - Add "unreg_spi_drv" goto tag. - Check "debugfs_create_dir" return value. - Update "if" statments for consistency. v2->v3: - Undo pi433 init & exit calls reordering. Reorder exit calls in a seperate patch. - Remove "unreg_spi_drv" tag. - Undo return value checking for "debugfs_create_dir". - Undo "if" statements update. drivers/staging/pi433/pi433_if.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c index 62ce75b07bf0..b01ee145ff3c 100644 --- a/drivers/staging/pi433/pi433_if.c +++ b/drivers/staging/pi433/pi433_if.c @@ -1403,21 +1403,21 @@ static int __init pi433_init(void) return status; status = class_register(&pi433_class); - if (status) { - unregister_chrdev(MAJOR(pi433_devt), - pi433_spi_driver.driver.name); - return status; - } + if (status) + goto unreg_chrdev; root_dir = debugfs_create_dir(KBUILD_MODNAME, NULL); status = spi_register_driver(&pi433_spi_driver); - if (status < 0) { - class_unregister(&pi433_class); - unregister_chrdev(MAJOR(pi433_devt), - pi433_spi_driver.driver.name); - } + if (status < 0) + goto unreg_class_and_remove_dbfs; + return 0; + +unreg_class_and_remove_dbfs: + class_unregister(&pi433_class); +unreg_chrdev: + unregister_chrdev(MAJOR(pi433_devt), pi433_spi_driver.driver.name); return status; } -- 2.34.1