Fixed SDO download via library.

This commit is contained in:
Florian Pose 2009-02-24 10:03:53 +00:00
parent 388e43b7e6
commit f73cdc7a6b
1 changed files with 14 additions and 0 deletions

View File

@ -2273,6 +2273,7 @@ int ec_cdev_ioctl_sdo_request_write(
ec_ioctl_sdo_request_t data;
ec_slave_config_t *sc;
ec_sdo_request_t *req;
int ret;
if (unlikely(!priv->requested))
return -EPERM;
@ -2280,6 +2281,11 @@ int ec_cdev_ioctl_sdo_request_write(
if (copy_from_user(&data, (void __user *) arg, sizeof(data)))
return -EFAULT;
if (!data.size) {
EC_ERR("Sdo download: Data size may not be zero!\n");
return -EINVAL;
}
if (down_interruptible(&master->master_sem))
return -EINTR;
@ -2295,6 +2301,14 @@ int ec_cdev_ioctl_sdo_request_write(
up(&master->master_sem);
ret = ec_sdo_request_alloc(req, data.size);
if (ret)
return ret;
if (copy_from_user(req->data, (void __user *) data.data, data.size))
return -EFAULT;
req->data_size = data.size;
ecrt_sdo_request_write(req);
return 0;
}