]> git.hungrycats.org Git - linux/commitdiff
[PATCH] ib700wdt janitor work
authorDave Jones <davej@suse.de>
Fri, 31 May 2002 03:44:52 +0000 (20:44 -0700)
committerLinus Torvalds <torvalds@penguin.transmeta.com>
Fri, 31 May 2002 03:44:52 +0000 (20:44 -0700)
o Check misc_register return code
o request_region() return code checking
o graceful failure

drivers/char/ib700wdt.c

index 8f7c1671d4a7a0735f8bde3cd3937a106156a47f..fa3228b0ed6bcb20b634edfc0737435911792b30 100644 (file)
@@ -271,11 +271,21 @@ ibwdt_init(void)
 
        ibwdt_validate_timeout();
        spin_lock_init(&ibwdt_lock);
-       misc_register(&ibwdt_miscdev);
+       if (misc_register(&ibwdt_miscdev))
+               return -ENODEV;
 #if WDT_START != WDT_STOP
-       request_region(WDT_STOP, 1, "IB700 WDT");
+       if (!request_region(WDT_STOP, 1, "IB700 WDT")) {
+               misc_deregister(&ibwdt_miscdev);
+               return -EIO;
+       }
+#endif
+       if (!request_region(WDT_START, 1, "IB700 WDT")) {
+#if WDT_START != WDT_STOP
+               release_region(WDT_STOP, 1);
 #endif
-       request_region(WDT_START, 1, "IB700 WDT");
+               misc_deregister(&ibwdt_miscdev);
+               return -EIO;
+       }
        register_reboot_notifier(&ibwdt_notifier);
        return 0;
 }