diff options
author | Wim Van Sebroeck <wim@iguana.be> | 2006-08-05 20:59:01 +0200 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2006-10-03 21:35:09 +0200 |
commit | 1bef84bea273f40486936ae97cda70ee8b252cd0 (patch) | |
tree | 7f1a9cd2972f9201f7f79c73ca8aa92db6e78be0 | |
parent | 4802c6533af3223f43b9e4a1bb8a2a1c51f398b1 (diff) |
[WATCHDOG] iTCO_wdt.c shutdown patch
Since we are using the device driver model,
we don't need to arrange the shutdown via a
reboot_notifier.
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
-rw-r--r-- | drivers/char/watchdog/iTCO_wdt.c | 37 |
1 files changed, 4 insertions, 33 deletions
diff --git a/drivers/char/watchdog/iTCO_wdt.c b/drivers/char/watchdog/iTCO_wdt.c index 852ad8389bc..ebd3fc8000e 100644 --- a/drivers/char/watchdog/iTCO_wdt.c +++ b/drivers/char/watchdog/iTCO_wdt.c @@ -45,7 +45,7 @@ /* Module and version information */ #define DRV_NAME "iTCO_wdt" #define DRV_VERSION "1.00" -#define DRV_RELDATE "19-Jul-2006" +#define DRV_RELDATE "30-Jul-2006" #define PFX DRV_NAME ": " /* Includes */ @@ -57,8 +57,6 @@ #include <linux/kernel.h> /* For printk/panic/... */ #include <linux/miscdevice.h> /* For MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR) */ #include <linux/watchdog.h> /* For the watchdog specific items */ -#include <linux/notifier.h> /* For notifier support */ -#include <linux/reboot.h> /* For reboot_notifier stuff */ #include <linux/init.h> /* For __init/__exit/... */ #include <linux/fs.h> /* For file operations */ #include <linux/platform_device.h> /* For platform_driver framework */ @@ -501,20 +499,6 @@ static int iTCO_wdt_ioctl (struct inode *inode, struct file *file, } /* - * Notify system - */ - -static int iTCO_wdt_notify_sys (struct notifier_block *this, unsigned long code, void *unused) -{ - if (code==SYS_DOWN || code==SYS_HALT) { - /* Turn the WDT off */ - iTCO_wdt_stop(); - } - - return NOTIFY_DONE; -} - -/* * Kernel Interfaces */ @@ -533,10 +517,6 @@ static struct miscdevice iTCO_wdt_miscdev = { .fops = &iTCO_wdt_fops, }; -static struct notifier_block iTCO_wdt_notifier = { - .notifier_call = iTCO_wdt_notify_sys, -}; - /* * Init & exit routines */ @@ -623,18 +603,11 @@ static int iTCO_wdt_init(struct pci_dev *pdev, const struct pci_device_id *ent, heartbeat); } - ret = register_reboot_notifier(&iTCO_wdt_notifier); - if (ret != 0) { - printk(KERN_ERR PFX "cannot register reboot notifier (err=%d)\n", - ret); - goto unreg_region; - } - ret = misc_register(&iTCO_wdt_miscdev); if (ret != 0) { printk(KERN_ERR PFX "cannot register miscdev on minor=%d (err=%d)\n", WATCHDOG_MINOR, ret); - goto unreg_notifier; + goto unreg_region; } printk (KERN_INFO PFX "initialized. heartbeat=%d sec (nowayout=%d)\n", @@ -642,15 +615,13 @@ static int iTCO_wdt_init(struct pci_dev *pdev, const struct pci_device_id *ent, return 0; -unreg_notifier: - unregister_reboot_notifier(&iTCO_wdt_notifier); unreg_region: release_region (TCOBASE, 0x20); out: if (iTCO_wdt_private.iTCO_version == 2) iounmap(iTCO_wdt_private.gcs); - iTCO_wdt_private.ACPIBASE = 0; pci_dev_put(iTCO_wdt_private.pdev); + iTCO_wdt_private.ACPIBASE = 0; return ret; } @@ -662,11 +633,11 @@ static void iTCO_wdt_cleanup(void) /* Deregister */ misc_deregister(&iTCO_wdt_miscdev); - unregister_reboot_notifier(&iTCO_wdt_notifier); release_region(TCOBASE, 0x20); if (iTCO_wdt_private.iTCO_version == 2) iounmap(iTCO_wdt_private.gcs); pci_dev_put(iTCO_wdt_private.pdev); + iTCO_wdt_private.ACPIBASE = 0; } static int iTCO_wdt_probe(struct platform_device *dev) |