mei: use type struct mei_cl *cl instead of void in struct mei_cb

We can use correct type 'struct mei_cl' instead of
'void *' for file_private in the struct mei_cb
as there is no other type assigned to this member of the structure

We rename the member from file_private to cl

Remove about 10 lines of declarations of temporary variables
used for type casting

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Tomas Winkler 2012-11-11 17:37:59 +02:00 committed by Greg Kroah-Hartman
parent e773efc405
commit db3ed43185
6 changed files with 24 additions and 29 deletions

View file

@ -119,14 +119,12 @@ void mei_amthif_host_init(struct mei_device *dev)
struct mei_cl_cb *mei_amthif_find_read_list_entry(struct mei_device *dev, struct mei_cl_cb *mei_amthif_find_read_list_entry(struct mei_device *dev,
struct file *file) struct file *file)
{ {
struct mei_cl *cl_temp;
struct mei_cl_cb *pos = NULL; struct mei_cl_cb *pos = NULL;
struct mei_cl_cb *next = NULL; struct mei_cl_cb *next = NULL;
list_for_each_entry_safe(pos, next, list_for_each_entry_safe(pos, next,
&dev->amthif_rd_complete_list.list, list) { &dev->amthif_rd_complete_list.list, list) {
cl_temp = (struct mei_cl *)pos->file_private; if (pos->cl && pos->cl == &dev->iamthif_cl &&
if (cl_temp && cl_temp == &dev->iamthif_cl &&
pos->file_object == file) pos->file_object == file)
return pos; return pos;
} }
@ -370,7 +368,6 @@ int mei_amthif_write(struct mei_device *dev, struct mei_cl_cb *cb)
*/ */
void mei_amthif_run_next_cmd(struct mei_device *dev) void mei_amthif_run_next_cmd(struct mei_device *dev)
{ {
struct mei_cl *cl_tmp;
struct mei_cl_cb *pos = NULL; struct mei_cl_cb *pos = NULL;
struct mei_cl_cb *next = NULL; struct mei_cl_cb *next = NULL;
int status; int status;
@ -390,9 +387,8 @@ void mei_amthif_run_next_cmd(struct mei_device *dev)
list_for_each_entry_safe(pos, next, &dev->amthif_cmd_list.list, list) { list_for_each_entry_safe(pos, next, &dev->amthif_cmd_list.list, list) {
list_del(&pos->list); list_del(&pos->list);
cl_tmp = (struct mei_cl *)pos->file_private;
if (cl_tmp && cl_tmp == &dev->iamthif_cl) { if (pos->cl && pos->cl == &dev->iamthif_cl) {
status = mei_amthif_send_cmd(dev, pos); status = mei_amthif_send_cmd(dev, pos);
if (status) { if (status) {
dev_dbg(&dev->pdev->dev, dev_dbg(&dev->pdev->dev,
@ -500,7 +496,6 @@ int mei_amthif_irq_process_completed(struct mei_device *dev, s32 *slots,
int mei_amthif_irq_read_message(struct mei_cl_cb *complete_list, int mei_amthif_irq_read_message(struct mei_cl_cb *complete_list,
struct mei_device *dev, struct mei_msg_hdr *mei_hdr) struct mei_device *dev, struct mei_msg_hdr *mei_hdr)
{ {
struct mei_cl *cl;
struct mei_cl_cb *cb; struct mei_cl_cb *cb;
unsigned char *buffer; unsigned char *buffer;
@ -528,14 +523,13 @@ int mei_amthif_irq_read_message(struct mei_cl_cb *complete_list,
cb = dev->iamthif_current_cb; cb = dev->iamthif_current_cb;
dev->iamthif_current_cb = NULL; dev->iamthif_current_cb = NULL;
cl = (struct mei_cl *)cb->file_private; if (!cb->cl)
if (!cl)
return -ENODEV; return -ENODEV;
dev->iamthif_stall_timer = 0; dev->iamthif_stall_timer = 0;
cb->buf_idx = dev->iamthif_msg_buf_index; cb->buf_idx = dev->iamthif_msg_buf_index;
cb->read_time = jiffies; cb->read_time = jiffies;
if (dev->iamthif_ioctl && cl == &dev->iamthif_cl) { if (dev->iamthif_ioctl && cb->cl == &dev->iamthif_cl) {
/* found the iamthif cb */ /* found the iamthif cb */
dev_dbg(&dev->pdev->dev, "complete the amthi read cb.\n "); dev_dbg(&dev->pdev->dev, "complete the amthi read cb.\n ");
dev_dbg(&dev->pdev->dev, "add the amthi read cb to complete.\n "); dev_dbg(&dev->pdev->dev, "add the amthi read cb to complete.\n ");

View file

@ -55,10 +55,8 @@ void mei_io_list_flush(struct mei_cl_cb *list, struct mei_cl *cl)
struct mei_cl_cb *next; struct mei_cl_cb *next;
list_for_each_entry_safe(pos, next, &list->list, list) { list_for_each_entry_safe(pos, next, &list->list, list) {
if (pos->file_private) { if (pos->cl) {
struct mei_cl *cl_tmp; if (mei_cl_cmp_id(cl, pos->cl))
cl_tmp = (struct mei_cl *)pos->file_private;
if (mei_cl_cmp_id(cl, cl_tmp))
list_del(&pos->list); list_del(&pos->list);
} }
} }

View file

@ -113,7 +113,7 @@ static int mei_irq_thread_read_client_message(struct mei_cl_cb *complete_list,
goto quit; goto quit;
list_for_each_entry_safe(cb_pos, cb_next, &dev->read_list.list, list) { list_for_each_entry_safe(cb_pos, cb_next, &dev->read_list.list, list) {
cl = (struct mei_cl *)cb_pos->file_private; cl = cb_pos->cl;
if (cl && _mei_irq_thread_state_ok(cl, mei_hdr)) { if (cl && _mei_irq_thread_state_ok(cl, mei_hdr)) {
cl->reading_state = MEI_READING; cl->reading_state = MEI_READING;
buffer = cb_pos->response_buffer.data + cb_pos->buf_idx; buffer = cb_pos->response_buffer.data + cb_pos->buf_idx;
@ -263,7 +263,7 @@ static void mei_client_connect_response(struct mei_device *dev,
} }
list_for_each_entry_safe(pos, next, &dev->ctrl_rd_list.list, list) { list_for_each_entry_safe(pos, next, &dev->ctrl_rd_list.list, list) {
cl = (struct mei_cl *)pos->file_private; cl = pos->cl;
if (!cl) { if (!cl) {
list_del(&pos->list); list_del(&pos->list);
return; return;
@ -301,7 +301,7 @@ static void mei_client_disconnect_response(struct mei_device *dev,
rs->status); rs->status);
list_for_each_entry_safe(pos, next, &dev->ctrl_rd_list.list, list) { list_for_each_entry_safe(pos, next, &dev->ctrl_rd_list.list, list) {
cl = (struct mei_cl *)pos->file_private; cl = pos->cl;
if (!cl) { if (!cl) {
list_del(&pos->list); list_del(&pos->list);
@ -981,7 +981,7 @@ static int mei_irq_thread_write_handler(struct mei_cl_cb *cmpl_list,
list = &dev->write_waiting_list; list = &dev->write_waiting_list;
list_for_each_entry_safe(pos, next, &list->list, list) { list_for_each_entry_safe(pos, next, &list->list, list) {
cl = (struct mei_cl *)pos->file_private; cl = pos->cl;
if (cl == NULL) if (cl == NULL)
continue; continue;
@ -1039,7 +1039,7 @@ static int mei_irq_thread_write_handler(struct mei_cl_cb *cmpl_list,
/* complete control write list CB */ /* complete control write list CB */
dev_dbg(&dev->pdev->dev, "complete control write list cb.\n"); dev_dbg(&dev->pdev->dev, "complete control write list cb.\n");
list_for_each_entry_safe(pos, next, &dev->ctrl_wr_list.list, list) { list_for_each_entry_safe(pos, next, &dev->ctrl_wr_list.list, list) {
cl = (struct mei_cl *) pos->file_private; cl = pos->cl;
if (!cl) { if (!cl) {
list_del(&pos->list); list_del(&pos->list);
return -ENODEV; return -ENODEV;
@ -1077,7 +1077,7 @@ static int mei_irq_thread_write_handler(struct mei_cl_cb *cmpl_list,
/* complete write list CB */ /* complete write list CB */
dev_dbg(&dev->pdev->dev, "complete write list cb.\n"); dev_dbg(&dev->pdev->dev, "complete write list cb.\n");
list_for_each_entry_safe(pos, next, &dev->write_list.list, list) { list_for_each_entry_safe(pos, next, &dev->write_list.list, list) {
cl = (struct mei_cl *)pos->file_private; cl = pos->cl;
if (cl == NULL) if (cl == NULL)
continue; continue;
@ -1316,7 +1316,7 @@ end:
list_for_each_entry_safe(cb_pos, cb_next, &complete_list.list, list) { list_for_each_entry_safe(cb_pos, cb_next, &complete_list.list, list) {
cl = (struct mei_cl *)cb_pos->file_private; cl = cb_pos->cl;
list_del(&cb_pos->list); list_del(&cb_pos->list);
if (cl) { if (cl) {
if (cl != &dev->iamthif_cl) { if (cl != &dev->iamthif_cl) {

View file

@ -71,7 +71,7 @@ struct mei_cl_cb *mei_io_cb_init(struct mei_cl *cl, struct file *fp)
mei_io_list_init(cb); mei_io_list_init(cb);
cb->file_object = fp; cb->file_object = fp;
cb->file_private = cl; cb->cl = cl;
cb->buf_idx = 0; cb->buf_idx = 0;
return cb; return cb;
} }

View file

@ -189,13 +189,9 @@ static struct mei_cl_cb *find_read_list_entry(
struct mei_cl_cb *next = NULL; struct mei_cl_cb *next = NULL;
dev_dbg(&dev->pdev->dev, "remove read_list CB\n"); dev_dbg(&dev->pdev->dev, "remove read_list CB\n");
list_for_each_entry_safe(pos, next, &dev->read_list.list, list) { list_for_each_entry_safe(pos, next, &dev->read_list.list, list)
struct mei_cl *cl_temp; if (mei_cl_cmp_id(cl, pos->cl))
cl_temp = (struct mei_cl *)pos->file_private;
if (mei_cl_cmp_id(cl, cl_temp))
return pos; return pos;
}
return NULL; return NULL;
} }

View file

@ -143,10 +143,17 @@ struct mei_message_data {
}; };
struct mei_cl;
/*
* struct mei_cl_cb - file operation callback structure
*
* @cl - file client who is running this operation
*/
struct mei_cl_cb { struct mei_cl_cb {
struct list_head list; struct list_head list;
struct mei_cl *cl;
enum mei_cb_major_types major_file_operations; enum mei_cb_major_types major_file_operations;
void *file_private;
struct mei_message_data request_buffer; struct mei_message_data request_buffer;
struct mei_message_data response_buffer; struct mei_message_data response_buffer;
unsigned long buf_idx; unsigned long buf_idx;