summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorWim Van Sebroeck <wim@iguana.be>2006-08-05 20:59:01 +0200
committerWim Van Sebroeck <wim@iguana.be>2006-10-03 21:35:09 +0200
commit1bef84bea273f40486936ae97cda70ee8b252cd0 (patch)
tree7f1a9cd2972f9201f7f79c73ca8aa92db6e78be0 /drivers
parent[WATCHDOG] iTCO_wdt.c - pci_dev_put fix (diff)
downloadlinux-1bef84bea273f40486936ae97cda70ee8b252cd0.tar.xz
linux-1bef84bea273f40486936ae97cda70ee8b252cd0.zip
[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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/watchdog/iTCO_wdt.c37
1 files changed, 4 insertions, 33 deletions
diff --git a/drivers/char/watchdog/iTCO_wdt.c b/drivers/char/watchdog/iTCO_wdt.c
index 852ad8389bc7..ebd3fc8000e5 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)