aboutsummaryrefslogtreecommitdiff
path: root/drivers/firewire/fw-device-cdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/firewire/fw-device-cdev.c')
-rw-r--r--drivers/firewire/fw-device-cdev.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/firewire/fw-device-cdev.c b/drivers/firewire/fw-device-cdev.c
index 6545fb8214d..5c876188677 100644
--- a/drivers/firewire/fw-device-cdev.c
+++ b/drivers/firewire/fw-device-cdev.c
@@ -413,8 +413,16 @@ static int ioctl_create_iso_context(struct client *client, void __user *arg)
if (request.type > FW_ISO_CONTEXT_RECEIVE)
return -EINVAL;
+ if (request.channel > 63)
+ return -EINVAL;
+
+ if (request.speed > SCODE_3200)
+ return -EINVAL;
+
client->iso_context = fw_iso_context_create(client->device->card,
request.type,
+ request.channel,
+ request.speed,
request.header_size,
iso_callback, client);
if (IS_ERR(client->iso_context))
@@ -519,8 +527,7 @@ static int ioctl_start_iso(struct client *client, void __user *arg)
if (copy_from_user(&request, arg, sizeof request))
return -EFAULT;
- return fw_iso_context_start(client->iso_context, request.channel,
- request.speed, request.cycle);
+ return fw_iso_context_start(client->iso_context, request.cycle);
}
static int ioctl_stop_iso(struct client *client, void __user *arg)