GDTH_UNLOCK_HA(ha, flags);
}
-static void gdth_clear_events()
+static void gdth_clear_events(void)
{
TRACE(("gdth_clear_events()"));
return 0;
}
-static int ioc_event(unsigned long arg)
+static int ioc_event(void __user *arg)
{
gdth_ioctl_event evt;
gdth_ha_str *ha;
ulong flags;
- if (copy_from_user(&evt, (char *)arg, sizeof(gdth_ioctl_event)) ||
+ if (copy_from_user(&evt, arg, sizeof(gdth_ioctl_event)) ||
evt.ionode >= gdth_ctr_count)
return -EFAULT;
ha = HADATA(gdth_ctr_tab[evt.ionode]);
} else {
gdth_readapp_event(ha, evt.erase, &evt.event);
}
- if (copy_to_user((char *)arg, &evt, sizeof(gdth_ioctl_event)))
+ if (copy_to_user(arg, &evt, sizeof(gdth_ioctl_event)))
return -EFAULT;
return 0;
}
-static int ioc_lockdrv(unsigned long arg)
+static int ioc_lockdrv(void __user *arg)
{
gdth_ioctl_lockdrv ldrv;
unchar i, j;
ulong flags;
gdth_ha_str *ha;
- if (copy_from_user(&ldrv, (char *)arg, sizeof(gdth_ioctl_lockdrv)) ||
+ if (copy_from_user(&ldrv, arg, sizeof(gdth_ioctl_lockdrv)) ||
ldrv.ionode >= gdth_ctr_count)
return -EFAULT;
ha = HADATA(gdth_ctr_tab[ldrv.ionode]);
return 0;
}
-static int ioc_resetdrv(unsigned long arg, char *cmnd)
+static int ioc_resetdrv(void __user *arg, char *cmnd)
{
gdth_ioctl_reset res;
gdth_cmd_str cmd;
Scsi_Cmnd scp;
#endif
- if (copy_from_user(&res, (char *)arg, sizeof(gdth_ioctl_reset)) ||
+ if (copy_from_user(&res, arg, sizeof(gdth_ioctl_reset)) ||
res.ionode >= gdth_ctr_count || res.number >= MAX_HDRIVES)
return -EFAULT;
hanum = res.ionode;
gdth_do_cmd(&scp, &cmd, cmnd, 30);
res.status = (ushort)scp.SCp.Status;
#endif
- if (copy_to_user((char *)arg, &res, sizeof(gdth_ioctl_reset)))
+ if (copy_to_user(arg, &res, sizeof(gdth_ioctl_reset)))
return -EFAULT;
return 0;
}
-static int ioc_general(unsigned long arg, char *cmnd)
+static int ioc_general(void __user *arg, char *cmnd)
{
gdth_ioctl_general gen;
char *buf = NULL;
Scsi_Cmnd scp;
#endif
- if (copy_from_user(&gen, (char *)arg, sizeof(gdth_ioctl_general)) ||
+ if (copy_from_user(&gen, arg, sizeof(gdth_ioctl_general)) ||
gen.ionode >= gdth_ctr_count)
return -EFAULT;
hanum = gen.ionode;
if (!(buf = gdth_ioctl_alloc(hanum, gen.data_len + gen.sense_len,
FALSE, &paddr)))
return -EFAULT;
- if (copy_from_user(buf, (char *)arg + sizeof(gdth_ioctl_general),
+ if (copy_from_user(buf, arg + sizeof(gdth_ioctl_general),
gen.data_len + gen.sense_len)) {
gdth_ioctl_free(hanum, gen.data_len+gen.sense_len, buf, paddr);
return -EFAULT;
gen.info = scp.SCp.Message;
#endif
- if (copy_to_user((char *)arg + sizeof(gdth_ioctl_general), buf,
+ if (copy_to_user(arg + sizeof(gdth_ioctl_general), buf,
gen.data_len + gen.sense_len)) {
gdth_ioctl_free(hanum, gen.data_len+gen.sense_len, buf, paddr);
return -EFAULT;
}
- if (copy_to_user((char *)arg, &gen,
+ if (copy_to_user(arg, &gen,
sizeof(gdth_ioctl_general) - sizeof(gdth_cmd_str))) {
gdth_ioctl_free(hanum, gen.data_len+gen.sense_len, buf, paddr);
return -EFAULT;
return 0;
}
-static int ioc_hdrlist(unsigned long arg, char *cmnd)
+static int ioc_hdrlist(void __user *arg, char *cmnd)
{
gdth_ioctl_rescan rsc;
gdth_cmd_str cmd;
Scsi_Cmnd scp;
#endif
- if (copy_from_user(&rsc, (char *)arg, sizeof(gdth_ioctl_rescan)) ||
+ if (copy_from_user(&rsc, arg, sizeof(gdth_ioctl_rescan)) ||
rsc.ionode >= gdth_ctr_count)
return -EFAULT;
hanum = rsc.ionode;
scsi_release_command(scp);
#endif
- if (copy_to_user((char *)arg, &rsc, sizeof(gdth_ioctl_rescan)))
+ if (copy_to_user(arg, &rsc, sizeof(gdth_ioctl_rescan)))
return -EFAULT;
return 0;
}
-static int ioc_rescan(unsigned long arg, char *cmnd)
+static int ioc_rescan(void __user *arg, char *cmnd)
{
gdth_ioctl_rescan rsc;
gdth_cmd_str cmd;
Scsi_Cmnd scp;
#endif
- if (copy_from_user(&rsc, (char *)arg, sizeof(gdth_ioctl_rescan)) ||
+ if (copy_from_user(&rsc, arg, sizeof(gdth_ioctl_rescan)) ||
rsc.ionode >= gdth_ctr_count)
return -EFAULT;
hanum = rsc.ionode;
scsi_release_command(scp);
#endif
- if (copy_to_user((char *)arg, &rsc, sizeof(gdth_ioctl_rescan)))
+ if (copy_to_user(arg, &rsc, sizeof(gdth_ioctl_rescan)))
return -EFAULT;
return 0;
}
#endif
ulong flags;
char cmnd[MAX_COMMAND_SIZE];
+ void __user *argp = (void __user *)arg;
memset(cmnd, 0xff, 12);
case GDTIOCTL_CTRCNT:
{
int cnt = gdth_ctr_count;
- if (put_user(cnt, (int *)arg))
+ if (put_user(cnt, (int __user *)argp))
return -EFAULT;
break;
}
case GDTIOCTL_DRVERS:
{
int ver = (GDTH_VERSION<<8) | GDTH_SUBVERSION;
- if (put_user(ver, (int *)arg))
+ if (put_user(ver, (int __user *)argp))
return -EFAULT;
break;
}
osv.version = (unchar)(LINUX_VERSION_CODE >> 16);
osv.subversion = (unchar)(LINUX_VERSION_CODE >> 8);
osv.revision = (ushort)(LINUX_VERSION_CODE & 0xff);
- if (copy_to_user((char *)arg, &osv, sizeof(gdth_ioctl_osvers)))
+ if (copy_to_user(argp, &osv, sizeof(gdth_ioctl_osvers)))
return -EFAULT;
break;
}
{
gdth_ioctl_ctrtype ctrt;
- if (copy_from_user(&ctrt, (char *)arg, sizeof(gdth_ioctl_ctrtype)) ||
+ if (copy_from_user(&ctrt, argp, sizeof(gdth_ioctl_ctrtype)) ||
ctrt.ionode >= gdth_ctr_count)
return -EFAULT;
ha = HADATA(gdth_ctr_tab[ctrt.ionode]);
}
ctrt.info = ha->brd_phys;
ctrt.oem_id = ha->oem_id;
- if (copy_to_user((char *)arg, &ctrt, sizeof(gdth_ioctl_ctrtype)))
+ if (copy_to_user(argp, &ctrt, sizeof(gdth_ioctl_ctrtype)))
return -EFAULT;
break;
}
case GDTIOCTL_GENERAL:
- return ioc_general(arg, cmnd);
+ return ioc_general(argp, cmnd);
case GDTIOCTL_EVENT:
- return ioc_event(arg);
+ return ioc_event(argp);
case GDTIOCTL_LOCKDRV:
- return ioc_lockdrv(arg);
+ return ioc_lockdrv(argp);
case GDTIOCTL_LOCKCHN:
{
gdth_ioctl_lockchn lchn;
unchar i, j;
- if (copy_from_user(&lchn, (char *)arg, sizeof(gdth_ioctl_lockchn)) ||
+ if (copy_from_user(&lchn, argp, sizeof(gdth_ioctl_lockchn)) ||
lchn.ionode >= gdth_ctr_count)
return -EFAULT;
ha = HADATA(gdth_ctr_tab[lchn.ionode]);
}
case GDTIOCTL_RESCAN:
- return ioc_rescan(arg, cmnd);
+ return ioc_rescan(argp, cmnd);
case GDTIOCTL_HDRLIST:
- return ioc_hdrlist(arg, cmnd);
+ return ioc_hdrlist(argp, cmnd);
case GDTIOCTL_RESET_BUS:
{
gdth_ioctl_reset res;
int hanum, rval;
- if (copy_from_user(&res, (char *)arg, sizeof(gdth_ioctl_reset)) ||
+ if (copy_from_user(&res, argp, sizeof(gdth_ioctl_reset)) ||
res.ionode >= gdth_ctr_count)
return -EFAULT;
hanum = res.ionode;
rval = gdth_eh_bus_reset(&scp);
res.status = (rval == SUCCESS ? S_OK : S_GENERR);
#endif
- if (copy_to_user((char *)arg, &res, sizeof(gdth_ioctl_reset)))
+ if (copy_to_user(argp, &res, sizeof(gdth_ioctl_reset)))
return -EFAULT;
break;
}
case GDTIOCTL_RESET_DRV:
- return ioc_resetdrv(arg, cmnd);
+ return ioc_resetdrv(argp, cmnd);
default:
break;