diff options
-rw-r--r-- | drivers/char/watchdog/mixcomwd.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/char/watchdog/mixcomwd.c b/drivers/char/watchdog/mixcomwd.c index e36c59c5d6c3..59a3baadc704 100644 --- a/drivers/char/watchdog/mixcomwd.c +++ b/drivers/char/watchdog/mixcomwd.c | |||
@@ -287,13 +287,19 @@ static int __init mixcomwd_init(void) | |||
287 | ret = misc_register(&mixcomwd_miscdev); | 287 | ret = misc_register(&mixcomwd_miscdev); |
288 | if (ret) | 288 | if (ret) |
289 | { | 289 | { |
290 | release_region(watchdog_port, 1); | 290 | printk(KERN_ERR PFX "cannot register miscdev on minor=%d (err=%d)\n", |
291 | return ret; | 291 | WATCHDOG_MINOR, ret); |
292 | goto error_misc_register_watchdog; | ||
292 | } | 293 | } |
293 | 294 | ||
294 | printk(KERN_INFO "MixCOM watchdog driver v%s, watchdog port at 0x%3x\n",VERSION,watchdog_port); | 295 | printk(KERN_INFO "MixCOM watchdog driver v%s, watchdog port at 0x%3x\n",VERSION,watchdog_port); |
295 | 296 | ||
296 | return 0; | 297 | return 0; |
298 | |||
299 | error_misc_register_watchdog: | ||
300 | release_region(watchdog_port, 1); | ||
301 | watchdog_port = 0x0000; | ||
302 | return ret; | ||
297 | } | 303 | } |
298 | 304 | ||
299 | static void __exit mixcomwd_exit(void) | 305 | static void __exit mixcomwd_exit(void) |
@@ -306,8 +312,8 @@ static void __exit mixcomwd_exit(void) | |||
306 | mixcomwd_timer_alive=0; | 312 | mixcomwd_timer_alive=0; |
307 | } | 313 | } |
308 | } | 314 | } |
309 | release_region(watchdog_port,1); | ||
310 | misc_deregister(&mixcomwd_miscdev); | 315 | misc_deregister(&mixcomwd_miscdev); |
316 | release_region(watchdog_port,1); | ||
311 | } | 317 | } |
312 | 318 | ||
313 | module_init(mixcomwd_init); | 319 | module_init(mixcomwd_init); |