Commit 6f9e0f60 authored by Alan Cox's avatar Alan Cox Committed by Greg Kroah-Hartman

Staging: sep: flow ioctl cleanup

Simple ioctl taking a single numeric argument so ditch the structs and
weirdness. While we are it lock it properly and fix the error returns.
Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 70ae04e6
...@@ -2167,39 +2167,32 @@ static int sep_end_transaction_handler(struct sep_device *sep, unsigned long arg ...@@ -2167,39 +2167,32 @@ static int sep_end_transaction_handler(struct sep_device *sep, unsigned long arg
} }
/* /**
This function handler the set flow id command * sep_set_flow_id_handler - handle flow setting
*/ * @sep: the SEP we are configuring
static int sep_set_flow_id_handler(struct sep_device *sep, unsigned long arg) * @flow_id: the flow we are setting
*
* This function handler the set flow id command
*/
static int sep_set_flow_id_handler(struct sep_device *sep,
unsigned long flow_id)
{ {
int error; int error = 0;
unsigned long flow_id;
struct sep_flow_context_t *flow_data_ptr; struct sep_flow_context_t *flow_data_ptr;
dbg("------------>SEP Driver: sep_set_flow_id_handler start\n");
error = get_user(flow_id, &(((struct sep_driver_set_flow_id_t *) arg)->flow_id));
if (error)
goto end_function;
/* find the flow data structure that was just used for creating new flow /* find the flow data structure that was just used for creating new flow
- its id should be default */ - its id should be default */
flow_data_ptr = sep_find_flow_context(sep, SEP_TEMP_FLOW_ID);
if (flow_data_ptr == NULL)
goto end_function;
/* set flow id */
flow_data_ptr->flow_id = flow_id;
end_function: mutex_lock(&sep_mutex);
dbg("SEP Driver:<-------- sep_set_flow_id_handler end\n"); flow_data_ptr = sep_find_flow_context(sep, SEP_TEMP_FLOW_ID);
if (flow_data_ptr)
flow_data_ptr->flow_id = flow_id; /* set flow id */
else
error = -EINVAL;
mutex_unlock(&sep_mutex);
return error; return error;
} }
static int sep_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) static int sep_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg)
{ {
int error = 0; int error = 0;
...@@ -2245,7 +2238,7 @@ static int sep_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, u ...@@ -2245,7 +2238,7 @@ static int sep_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, u
break; break;
case SEP_IOCSETFLOWID: case SEP_IOCSETFLOWID:
/* set flow id */ /* set flow id */
error = sep_set_flow_id_handler(sep, arg); error = sep_set_flow_id_handler(sep, (unsigned long)arg);
break; break;
case SEP_IOCADDFLOWTABLE: case SEP_IOCADDFLOWTABLE:
/* add tables to the dynamic flow */ /* add tables to the dynamic flow */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment