Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
 
 #include <linux/types.h>
 #include <linux/miscdevice.h>
+#include <asm/compat.h>
 #include <asm/ccwdev.h>
 #include "zfcp_def.h"
 #include "zfcp_ext.h"
 }
 
 static long zfcp_cfdc_dev_ioctl(struct file *file, unsigned int command,
-                               unsigned long buffer)
+                               unsigned long arg)
 {
        struct zfcp_cfdc_data *data;
        struct zfcp_cfdc_data __user *data_user;
        if (command != ZFCP_CFDC_IOC)
                return -ENOTTY;
 
-       data_user = (void __user *) buffer;
+       if (is_compat_task())
+               data_user = compat_ptr(arg);
+       else
+               data_user = (void __user *)arg;
+
        if (!data_user)
                return -EINVAL;