#include <linux/reboot.h>
 #include <linux/init.h>
 #include <linux/ioport.h>
-#include <asm/uaccess.h>
-#include <asm/io.h>
+#include <linux/uaccess.h>
+#include <linux/io.h>
 
 #define PFX "epx_c3: "
 static int epx_c3_alive;
        return len;
 }
 
-static int epx_c3_ioctl(struct inode *inode, struct file *file,
-                       unsigned int cmd, unsigned long arg)
+static long epx_c3_ioctl(struct file *file, unsigned int cmd,
+                                               unsigned long arg)
 {
        int options, retval = -EINVAL;
        int __user *argp = (void __user *)arg;
-       static struct watchdog_info ident = {
+       static const struct watchdog_info ident = {
                .options                = WDIOF_KEEPALIVEPING |
                                          WDIOF_MAGICCLOSE,
                .firmware_version       = 0,
        .owner          = THIS_MODULE,
        .llseek         = no_llseek,
        .write          = epx_c3_write,
-       .ioctl          = epx_c3_ioctl,
+       .unlocked_ioctl = epx_c3_ioctl,
        .open           = epx_c3_open,
        .release        = epx_c3_release,
 };