Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c6cb13aead3a3cf5bd3e2cfa945602d5cd7825cd
Commit:     c6cb13aead3a3cf5bd3e2cfa945602d5cd7825cd
Parent:     01c785dcb4e9fd6c4c370fd9915fc10585ed64bd
Author:     Wim Van Sebroeck <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 26 20:32:51 2007 +0000
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Fri Jan 25 20:31:50 2008 +0000

    [WATCHDOG] misc_register patch
    
    Make sure that we first do a register_reboot_notifier before we
    do a misc_register. A misc_register opens the interface to
    userspace and it's best to do this as the last action.
    
    Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
---
 drivers/watchdog/alim1535_wdt.c |   20 ++++++++++----------
 drivers/watchdog/alim7101_wdt.c |   18 +++++++++---------
 drivers/watchdog/sbc60xxwdt.c   |   18 +++++++++---------
 drivers/watchdog/scx200_wdt.c   |   10 +++++-----
 drivers/watchdog/w83877f_wdt.c  |   18 +++++++++---------
 drivers/watchdog/w83977f_wdt.c  |   18 +++++++++---------
 drivers/watchdog/wdt977.c       |   18 +++++++++---------
 7 files changed, 60 insertions(+), 60 deletions(-)

diff --git a/drivers/watchdog/alim1535_wdt.c b/drivers/watchdog/alim1535_wdt.c
index b481cc0..2b1fbdb 100644
--- a/drivers/watchdog/alim1535_wdt.c
+++ b/drivers/watchdog/alim1535_wdt.c
@@ -413,18 +413,18 @@ static int __init watchdog_init(void)
        /* Calculate the watchdog's timeout */
        ali_settimer(timeout);
 
-       ret = misc_register(&ali_miscdev);
+       ret = register_reboot_notifier(&ali_notifier);
        if (ret != 0) {
-               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
-                       WATCHDOG_MINOR, ret);
+               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
+                       ret);
                goto out;
        }
 
-       ret = register_reboot_notifier(&ali_notifier);
+       ret = misc_register(&ali_miscdev);
        if (ret != 0) {
-               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
-                       ret);
-               goto unreg_miscdev;
+               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
+                       WATCHDOG_MINOR, ret);
+               goto unreg_reboot;
        }
 
        printk(KERN_INFO PFX "initialized. timeout=%d sec (nowayout=%d)\n",
@@ -432,8 +432,8 @@ static int __init watchdog_init(void)
 
 out:
        return ret;
-unreg_miscdev:
-       misc_deregister(&ali_miscdev);
+unreg_reboot:
+       unregister_reboot_notifier(&ali_notifier);
        goto out;
 }
 
@@ -449,8 +449,8 @@ static void __exit watchdog_exit(void)
        ali_stop();
 
        /* Deregister */
-       unregister_reboot_notifier(&ali_notifier);
        misc_deregister(&ali_miscdev);
+       unregister_reboot_notifier(&ali_notifier);
        pci_dev_put(ali_pci);
 }
 
diff --git a/drivers/watchdog/alim7101_wdt.c b/drivers/watchdog/alim7101_wdt.c
index 67aed9f..238273c 100644
--- a/drivers/watchdog/alim7101_wdt.c
+++ b/drivers/watchdog/alim7101_wdt.c
@@ -377,18 +377,18 @@ static int __init alim7101_wdt_init(void)
                        timeout);
        }
 
-       rc = misc_register(&wdt_miscdev);
+       rc = register_reboot_notifier(&wdt_notifier);
        if (rc) {
-               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
-                       wdt_miscdev.minor, rc);
+               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
+                       rc);
                goto err_out;
        }
 
-       rc = register_reboot_notifier(&wdt_notifier);
+       rc = misc_register(&wdt_miscdev);
        if (rc) {
-               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
-                       rc);
-               goto err_out_miscdev;
+               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
+                       wdt_miscdev.minor, rc);
+               goto err_out_reboot;
        }
 
        if (nowayout) {
@@ -399,8 +399,8 @@ static int __init alim7101_wdt_init(void)
                timeout, nowayout);
        return 0;
 
-err_out_miscdev:
-       misc_deregister(&wdt_miscdev);
+err_out_reboot:
+       unregister_reboot_notifier(&wdt_notifier);
 err_out:
        pci_dev_put(alim7101_pmu);
        return rc;
diff --git a/drivers/watchdog/sbc60xxwdt.c b/drivers/watchdog/sbc60xxwdt.c
index e4f3cb6..ef76f01 100644
--- a/drivers/watchdog/sbc60xxwdt.c
+++ b/drivers/watchdog/sbc60xxwdt.c
@@ -359,20 +359,20 @@ static int __init sbc60xxwdt_init(void)
                }
        }
 
-       rc = misc_register(&wdt_miscdev);
+       rc = register_reboot_notifier(&wdt_notifier);
        if (rc)
        {
-               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
-                       wdt_miscdev.minor, rc);
+               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
+                       rc);
                goto err_out_region2;
        }
 
-       rc = register_reboot_notifier(&wdt_notifier);
+       rc = misc_register(&wdt_miscdev);
        if (rc)
        {
-               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
-                       rc);
-               goto err_out_miscdev;
+               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
+                       wdt_miscdev.minor, rc);
+               goto err_out_reboot;
        }
 
        printk(KERN_INFO PFX "WDT driver for 60XX single board computer 
initialised. timeout=%d sec (nowayout=%d)\n",
@@ -380,8 +380,8 @@ static int __init sbc60xxwdt_init(void)
 
        return 0;
 
-err_out_miscdev:
-       misc_deregister(&wdt_miscdev);
+err_out_reboot:
+       unregister_reboot_notifier(&wdt_notifier);
 err_out_region2:
        if ((wdt_stop != 0x45) && (wdt_stop != wdt_start))
                release_region(wdt_stop,1);
diff --git a/drivers/watchdog/scx200_wdt.c b/drivers/watchdog/scx200_wdt.c
index d4fd0fa..d55882b 100644
--- a/drivers/watchdog/scx200_wdt.c
+++ b/drivers/watchdog/scx200_wdt.c
@@ -231,17 +231,17 @@ static int __init scx200_wdt_init(void)
 
        sema_init(&open_semaphore, 1);
 
-       r = misc_register(&scx200_wdt_miscdev);
+       r = register_reboot_notifier(&scx200_wdt_notifier);
        if (r) {
+               printk(KERN_ERR NAME ": unable to register reboot notifier");
                release_region(scx200_cb_base + SCx200_WDT_OFFSET,
                                SCx200_WDT_SIZE);
                return r;
        }
 
-       r = register_reboot_notifier(&scx200_wdt_notifier);
+       r = misc_register(&scx200_wdt_miscdev);
        if (r) {
-               printk(KERN_ERR NAME ": unable to register reboot notifier");
-               misc_deregister(&scx200_wdt_miscdev);
+               unregister_reboot_notifier(&scx200_wdt_notifier);
                release_region(scx200_cb_base + SCx200_WDT_OFFSET,
                                SCx200_WDT_SIZE);
                return r;
@@ -252,8 +252,8 @@ static int __init scx200_wdt_init(void)
 
 static void __exit scx200_wdt_cleanup(void)
 {
-       unregister_reboot_notifier(&scx200_wdt_notifier);
        misc_deregister(&scx200_wdt_miscdev);
+       unregister_reboot_notifier(&scx200_wdt_notifier);
        release_region(scx200_cb_base + SCx200_WDT_OFFSET,
                       SCx200_WDT_SIZE);
 }
diff --git a/drivers/watchdog/w83877f_wdt.c b/drivers/watchdog/w83877f_wdt.c
index bcc9d48..f510a3a 100644
--- a/drivers/watchdog/w83877f_wdt.c
+++ b/drivers/watchdog/w83877f_wdt.c
@@ -373,20 +373,20 @@ static int __init w83877f_wdt_init(void)
                goto err_out_region1;
        }
 
-       rc = misc_register(&wdt_miscdev);
+       rc = register_reboot_notifier(&wdt_notifier);
        if (rc)
        {
-               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
-                       wdt_miscdev.minor, rc);
+               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
+                       rc);
                goto err_out_region2;
        }
 
-       rc = register_reboot_notifier(&wdt_notifier);
+       rc = misc_register(&wdt_miscdev);
        if (rc)
        {
-               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
-                       rc);
-               goto err_out_miscdev;
+               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
+                       wdt_miscdev.minor, rc);
+               goto err_out_reboot;
        }
 
        printk(KERN_INFO PFX "WDT driver for W83877F initialised. timeout=%d 
sec (nowayout=%d)\n",
@@ -394,8 +394,8 @@ static int __init w83877f_wdt_init(void)
 
        return 0;
 
-err_out_miscdev:
-       misc_deregister(&wdt_miscdev);
+err_out_reboot:
+       unregister_reboot_notifier(&wdt_notifier);
 err_out_region2:
        release_region(WDT_PING,1);
 err_out_region1:
diff --git a/drivers/watchdog/w83977f_wdt.c b/drivers/watchdog/w83977f_wdt.c
index b475529..b209bcd 100644
--- a/drivers/watchdog/w83977f_wdt.c
+++ b/drivers/watchdog/w83977f_wdt.c
@@ -494,20 +494,20 @@ static int __init w83977f_wdt_init(void)
                goto err_out;
        }
 
-       rc = misc_register(&wdt_miscdev);
+       rc = register_reboot_notifier(&wdt_notifier);
        if (rc)
        {
-               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
-                       wdt_miscdev.minor, rc);
+               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
+                       rc);
                goto err_out_region;
        }
 
-       rc = register_reboot_notifier(&wdt_notifier);
+       rc = misc_register(&wdt_miscdev);
        if (rc)
        {
-               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
-                       rc);
-               goto err_out_miscdev;
+               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
+                       wdt_miscdev.minor, rc);
+               goto err_out_reboot;
        }
 
        printk(KERN_INFO PFX "initialized. timeout=%d sec (nowayout=%d 
testmode=%d)\n",
@@ -515,8 +515,8 @@ static int __init w83977f_wdt_init(void)
 
        return 0;
 
-err_out_miscdev:
-       misc_deregister(&wdt_miscdev);
+err_out_reboot:
+       unregister_reboot_notifier(&wdt_notifier);
 err_out_region:
        release_region(IO_INDEX_PORT,2);
 err_out:
diff --git a/drivers/watchdog/wdt977.c b/drivers/watchdog/wdt977.c
index 9b7f6b6..fb4b876 100644
--- a/drivers/watchdog/wdt977.c
+++ b/drivers/watchdog/wdt977.c
@@ -470,20 +470,20 @@ static int __init wd977_init(void)
                }
        }
 
-       rc = misc_register(&wdt977_miscdev);
+       rc = register_reboot_notifier(&wdt977_notifier);
        if (rc)
        {
-               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
-                       wdt977_miscdev.minor, rc);
+               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
+                       rc);
                goto err_out_region;
        }
 
-       rc = register_reboot_notifier(&wdt977_notifier);
+       rc = misc_register(&wdt977_miscdev);
        if (rc)
        {
-               printk(KERN_ERR PFX "cannot register reboot notifier 
(err=%d)\n",
-                       rc);
-               goto err_out_miscdev;
+               printk(KERN_ERR PFX "cannot register miscdev on minor=%d 
(err=%d)\n",
+                       wdt977_miscdev.minor, rc);
+               goto err_out_reboot;
        }
 
        printk(KERN_INFO PFX "initialized. timeout=%d sec (nowayout=%d, 
testmode=%i)\n",
@@ -491,8 +491,8 @@ static int __init wd977_init(void)
 
        return 0;
 
-err_out_miscdev:
-        misc_deregister(&wdt977_miscdev);
+err_out_reboot:
+       unregister_reboot_notifier(&wdt977_notifier);
 err_out_region:
        if (!machine_is_netwinder())
                release_region(IO_INDEX_PORT,2);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to