[WATCHDOG] Semi-typical watchdog bug re early misc_register()
[firefly-linux-kernel-4.4.55.git] / drivers / char / watchdog / ibmasr.c
index 8195f5023d853c23406f3cd0abe319b68e745d2c..94155f6136c2369a10135cc62b9aef1896755d66 100644 (file)
@@ -367,18 +367,17 @@ static int __init ibmasr_init(void)
        if (!asr_type)
                return -ENODEV;
 
+       rc = asr_get_base_address();
+       if (rc)
+               return rc;
+
        rc = misc_register(&asr_miscdev);
        if (rc < 0) {
+               release_region(asr_base, asr_length);
                printk(KERN_ERR PFX "failed to register misc device\n");
                return rc;
        }
 
-       rc = asr_get_base_address();
-       if (rc) {
-               misc_deregister(&asr_miscdev);
-               return rc;
-       }
-
        return 0;
 }