netfilter: xtables: symmetric COMPAT_XT_ALIGN definition
[safe/jmp/linux-2.6] / drivers / watchdog / wafer5823wdt.c
index 9e36809..42e940c 100644 (file)
@@ -1,17 +1,17 @@
 /*
  *     ICP Wafer 5823 Single Board Computer WDT driver
- *      http://www.icpamerica.com/wafer_5823.php
- *      May also work on other similar models
+ *     http://www.icpamerica.com/wafer_5823.php
+ *     May also work on other similar models
  *
  *     (c) Copyright 2002 Justin Cormack <justin@street-vision.com>
  *
- *      Release 0.02
+ *     Release 0.02
  *
  *     Based on advantechwdt.c which is based on wdt.c.
  *     Original copyright messages:
  *
- *     (c) Copyright 1996-1997 Alan Cox <alan@redhat.com>, All Rights Reserved.
- *                             http://www.redhat.com
+ *     (c) Copyright 1996-1997 Alan Cox <alan@lxorguk.ukuu.org.uk>,
+ *                                             All Rights Reserved.
  *
  *     This program is free software; you can redistribute it and/or
  *     modify it under the terms of the GNU General Public License
@@ -36,8 +36,8 @@
 #include <linux/reboot.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
-#include <asm/io.h>
-#include <asm/uaccess.h>
+#include <linux/io.h>
+#include <linux/uaccess.h>
 
 #define WATCHDOG_NAME "Wafer 5823 WDT"
 #define PFX WATCHDOG_NAME ": "
@@ -50,10 +50,10 @@ static DEFINE_SPINLOCK(wafwdt_lock);
 /*
  *     You must set these - there is no sane way to probe for this board.
  *
- *      To enable, write the timeout value in seconds (1 to 255) to I/O
- *      port WDT_START, then read the port to start the watchdog. To pat
- *      the dog, read port WDT_STOP to stop the timer, then read WDT_START
- *      to restart it again.
+ *     To enable, write the timeout value in seconds (1 to 255) to I/O
+ *     port WDT_START, then read the port to start the watchdog. To pat
+ *     the dog, read port WDT_STOP to stop the timer, then read WDT_START
+ *     to restart it again.
  */
 
 static int wdt_stop = 0x843;
@@ -61,11 +61,15 @@ static int wdt_start = 0x443;
 
 static int timeout = WD_TIMO;  /* in seconds */
 module_param(timeout, int, 0);
-MODULE_PARM_DESC(timeout, "Watchdog timeout in seconds. 1<= timeout <=255, default=" __MODULE_STRING(WD_TIMO) ".");
+MODULE_PARM_DESC(timeout,
+               "Watchdog timeout in seconds. 1 <= timeout <= 255, default="
+                               __MODULE_STRING(WD_TIMO) ".");
 
 static int nowayout = WATCHDOG_NOWAYOUT;
 module_param(nowayout, int, 0);
-MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=" __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
+MODULE_PARM_DESC(nowayout,
+               "Watchdog cannot be stopped once started (default="
+                               __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
 
 static void wafwdt_ping(void)
 {
@@ -83,14 +87,14 @@ static void wafwdt_start(void)
        inb_p(wdt_start);
 }
 
-static void
-wafwdt_stop(void)
+static void wafwdt_stop(void)
 {
        /* stop watchdog */
        inb_p(wdt_stop);
 }
 
-static ssize_t wafwdt_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos)
+static ssize_t wafwdt_write(struct file *file, const char __user *buf,
+                                               size_t count, loff_t *ppos)
 {
        /* See if we got the magic character 'V' and reload the timer */
        if (count) {
@@ -100,7 +104,8 @@ static ssize_t wafwdt_write(struct file *file, const char __user *buf, size_t co
                        /* In case it was set long ago */
                        expect_close = 0;
 
-                       /* scan to see whether or not we got the magic character */
+                       /* scan to see whether or not we got the magic
+                          character */
                        for (i = 0; i != count; i++) {
                                char c;
                                if (get_user(c, buf + i))
@@ -109,27 +114,29 @@ static ssize_t wafwdt_write(struct file *file, const char __user *buf, size_t co
                                        expect_close = 42;
                        }
                }
-               /* Well, anyhow someone wrote to us, we should return that favour */
+               /* Well, anyhow someone wrote to us, we should
+                  return that favour */
                wafwdt_ping();
        }
        return count;
 }
 
-static int wafwdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
-            unsigned long arg)
+static long wafwdt_ioctl(struct file *file, unsigned int cmd,
+                                                       unsigned long arg)
 {
        int new_timeout;
        void __user *argp = (void __user *)arg;
        int __user *p = argp;
-       static struct watchdog_info ident = {
-               .options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE,
+       static const struct watchdog_info ident = {
+               .options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT |
+                                                       WDIOF_MAGICCLOSE,
                .firmware_version = 1,
                .identity = "Wafer 5823 WDT",
        };
 
        switch (cmd) {
        case WDIOC_GETSUPPORT:
-               if (copy_to_user(argp, &ident, sizeof (ident)))
+               if (copy_to_user(argp, &ident, sizeof(ident)))
                        return -EFAULT;
                break;
 
@@ -137,22 +144,6 @@ static int wafwdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd
        case WDIOC_GETBOOTSTATUS:
                return put_user(0, p);
 
-       case WDIOC_KEEPALIVE:
-               wafwdt_ping();
-               break;
-
-       case WDIOC_SETTIMEOUT:
-               if (get_user(new_timeout, p))
-                       return -EFAULT;
-               if ((new_timeout < 1) || (new_timeout > 255))
-                       return -EINVAL;
-               timeout = new_timeout;
-               wafwdt_stop();
-               wafwdt_start();
-               /* Fall */
-       case WDIOC_GETTIMEOUT:
-               return put_user(timeout, p);
-
        case WDIOC_SETOPTIONS:
        {
                int options, retval = -EINVAL;
@@ -173,6 +164,22 @@ static int wafwdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd
                return retval;
        }
 
+       case WDIOC_KEEPALIVE:
+               wafwdt_ping();
+               break;
+
+       case WDIOC_SETTIMEOUT:
+               if (get_user(new_timeout, p))
+                       return -EFAULT;
+               if ((new_timeout < 1) || (new_timeout > 255))
+                       return -EINVAL;
+               timeout = new_timeout;
+               wafwdt_stop();
+               wafwdt_start();
+               /* Fall */
+       case WDIOC_GETTIMEOUT:
+               return put_user(timeout, p);
+
        default:
                return -ENOTTY;
        }
@@ -191,13 +198,13 @@ static int wafwdt_open(struct inode *inode, struct file *file)
        return nonseekable_open(inode, file);
 }
 
-static int
-wafwdt_close(struct inode *inode, struct file *file)
+static int wafwdt_close(struct inode *inode, struct file *file)
 {
-       if (expect_close == 42) {
+       if (expect_close == 42)
                wafwdt_stop();
-       } else {
-               printk(KERN_CRIT PFX "WDT device closed unexpectedly.  WDT will not stop!\n");
+       else {
+               printk(KERN_CRIT PFX
+                   "WDT device closed unexpectedly.  WDT will not stop!\n");
                wafwdt_ping();
        }
        clear_bit(0, &wafwdt_is_open);
@@ -209,12 +216,11 @@ wafwdt_close(struct inode *inode, struct file *file)
  *     Notifier for system down
  */
 
-static int wafwdt_notify_sys(struct notifier_block *this, unsigned long code, void *unused)
+static int wafwdt_notify_sys(struct notifier_block *this, unsigned long code,
+                                                               void *unused)
 {
-       if (code == SYS_DOWN || code == SYS_HALT) {
-               /* Turn the WDT off */
+       if (code == SYS_DOWN || code == SYS_HALT)
                wafwdt_stop();
-       }
        return NOTIFY_DONE;
 }
 
@@ -226,7 +232,7 @@ static const struct file_operations wafwdt_fops = {
        .owner          = THIS_MODULE,
        .llseek         = no_llseek,
        .write          = wafwdt_write,
-       .ioctl          = wafwdt_ioctl,
+       .unlocked_ioctl = wafwdt_ioctl,
        .open           = wafwdt_open,
        .release        = wafwdt_close,
 };
@@ -250,25 +256,28 @@ static int __init wafwdt_init(void)
 {
        int ret;
 
-       printk(KERN_INFO "WDT driver for Wafer 5823 single board computer initialising.\n");
+       printk(KERN_INFO
+         "WDT driver for Wafer 5823 single board computer initialising.\n");
 
        if (timeout < 1 || timeout > 255) {
                timeout = WD_TIMO;
-               printk (KERN_INFO PFX "timeout value must be 1<=x<=255, using %d\n",
-                       timeout);
+               printk(KERN_INFO PFX
+                       "timeout value must be 1 <= x <= 255, using %d\n",
+                                                               timeout);
        }
 
        if (wdt_stop != wdt_start) {
-               if(!request_region(wdt_stop, 1, "Wafer 5823 WDT")) {
-                       printk (KERN_ERR PFX "I/O address 0x%04x already in use\n",
-                       wdt_stop);
+               if (!request_region(wdt_stop, 1, "Wafer 5823 WDT")) {
+                       printk(KERN_ERR PFX
+                               "I/O address 0x%04x already in use\n",
+                                                               wdt_stop);
                        ret = -EIO;
                        goto error;
                }
        }
 
-       if(!request_region(wdt_start, 1, "Wafer 5823 WDT")) {
-               printk (KERN_ERR PFX "I/O address 0x%04x already in use\n",
+       if (!request_region(wdt_start, 1, "Wafer 5823 WDT")) {
+               printk(KERN_ERR PFX "I/O address 0x%04x already in use\n",
                        wdt_start);
                ret = -EIO;
                goto error2;
@@ -276,19 +285,20 @@ static int __init wafwdt_init(void)
 
        ret = register_reboot_notifier(&wafwdt_notifier);
        if (ret != 0) {
-               printk (KERN_ERR PFX "cannot register reboot notifier (err=%d)\n",
-                       ret);
+               printk(KERN_ERR PFX
+                       "cannot register reboot notifier (err=%d)\n", ret);
                goto error3;
        }
 
        ret = misc_register(&wafwdt_miscdev);
        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 miscdev on minor=%d (err=%d)\n",
+                                               WATCHDOG_MINOR, ret);
                goto error4;
        }
 
-       printk (KERN_INFO PFX "initialized. timeout=%d sec (nowayout=%d)\n",
+       printk(KERN_INFO PFX "initialized. timeout=%d sec (nowayout=%d)\n",
                timeout, nowayout);
 
        return ret;
@@ -307,7 +317,7 @@ static void __exit wafwdt_exit(void)
 {
        misc_deregister(&wafwdt_miscdev);
        unregister_reboot_notifier(&wafwdt_notifier);
-       if(wdt_stop != wdt_start)
+       if (wdt_stop != wdt_start)
                release_region(wdt_stop, 1);
        release_region(wdt_start, 1);
 }