[PATCH] zfcp: convert to compat_ioctl

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
2005-04-02 13:57:17 -06:00 committed by James Bottomley
parent cb59e84083
commit e183b06bf0

View File

@ -52,19 +52,18 @@ static inline int zfcp_sg_list_copy_from_user(struct zfcp_sg_list *,
static inline int zfcp_sg_list_copy_to_user(void __user *, static inline int zfcp_sg_list_copy_to_user(void __user *,
struct zfcp_sg_list *, size_t); struct zfcp_sg_list *, size_t);
static int zfcp_cfdc_dev_ioctl(struct inode *, struct file *, static int zfcp_cfdc_dev_ioctl(struct file *, unsigned int, unsigned long);
unsigned int, unsigned long);
#define ZFCP_CFDC_IOC_MAGIC 0xDD #define ZFCP_CFDC_IOC_MAGIC 0xDD
#define ZFCP_CFDC_IOC \ #define ZFCP_CFDC_IOC \
_IOWR(ZFCP_CFDC_IOC_MAGIC, 0, struct zfcp_cfdc_sense_data) _IOWR(ZFCP_CFDC_IOC_MAGIC, 0, struct zfcp_cfdc_sense_data)
#ifdef CONFIG_COMPAT
static struct ioctl_trans zfcp_ioctl_trans = {ZFCP_CFDC_IOC, (void*) sys_ioctl};
#endif
static struct file_operations zfcp_cfdc_fops = { static struct file_operations zfcp_cfdc_fops = {
.ioctl = zfcp_cfdc_dev_ioctl .unlocked_ioctl = zfcp_cfdc_dev_ioctl,
#ifdef CONFIG_COMPAT
.compat_ioctl = zfcp_cfdc_dev_ioctl
#endif
}; };
static struct miscdevice zfcp_cfdc_misc = { static struct miscdevice zfcp_cfdc_misc = {
@ -308,23 +307,16 @@ zfcp_module_init(void)
if (!zfcp_transport_template) if (!zfcp_transport_template)
return -ENODEV; return -ENODEV;
retval = register_ioctl32_conversion(zfcp_ioctl_trans.cmd,
zfcp_ioctl_trans.handler);
if (retval != 0) {
ZFCP_LOG_INFO("registration of ioctl32 conversion failed\n");
goto out;
}
retval = misc_register(&zfcp_cfdc_misc); retval = misc_register(&zfcp_cfdc_misc);
if (retval != 0) { if (retval != 0) {
ZFCP_LOG_INFO("registration of misc device " ZFCP_LOG_INFO("registration of misc device "
"zfcp_cfdc failed\n"); "zfcp_cfdc failed\n");
goto out_misc_register; goto out;
} else {
ZFCP_LOG_TRACE("major/minor for zfcp_cfdc: %d/%d\n",
ZFCP_CFDC_DEV_MAJOR, zfcp_cfdc_misc.minor);
} }
ZFCP_LOG_TRACE("major/minor for zfcp_cfdc: %d/%d\n",
ZFCP_CFDC_DEV_MAJOR, zfcp_cfdc_misc.minor);
/* Initialise proc semaphores */ /* Initialise proc semaphores */
sema_init(&zfcp_data.config_sema, 1); sema_init(&zfcp_data.config_sema, 1);
@ -348,8 +340,6 @@ zfcp_module_init(void)
out_ccw_register: out_ccw_register:
misc_deregister(&zfcp_cfdc_misc); misc_deregister(&zfcp_cfdc_misc);
out_misc_register:
unregister_ioctl32_conversion(zfcp_ioctl_trans.cmd);
out: out:
return retval; return retval;
} }
@ -370,9 +360,9 @@ zfcp_module_init(void)
* -EPERM - Cannot create or queue FSF request or create SBALs * -EPERM - Cannot create or queue FSF request or create SBALs
* -ERESTARTSYS- Received signal (is mapped to EAGAIN by VFS) * -ERESTARTSYS- Received signal (is mapped to EAGAIN by VFS)
*/ */
static int static long
zfcp_cfdc_dev_ioctl(struct inode *inode, struct file *file, zfcp_cfdc_dev_ioctl(struct file *file, unsigned int command,
unsigned int command, unsigned long buffer) unsigned long buffer)
{ {
struct zfcp_cfdc_sense_data *sense_data, __user *sense_data_user; struct zfcp_cfdc_sense_data *sense_data, __user *sense_data_user;
struct zfcp_adapter *adapter = NULL; struct zfcp_adapter *adapter = NULL;