diff --git a/drivers/staging/mei/init.c b/drivers/staging/mei/init.c index 8bf34794489c51af1a281d2ca3650d9706f8f48f..4cc184e617210cba773759429de576da5c73cbd6 100644 --- a/drivers/staging/mei/init.c +++ b/drivers/staging/mei/init.c @@ -38,7 +38,6 @@ void mei_io_list_init(struct mei_io_list *list) { /* initialize our queue list */ INIT_LIST_HEAD(&list->mei_cb.cb_list); - list->status = 0; } /** @@ -52,8 +51,6 @@ void mei_io_list_flush(struct mei_io_list *list, struct mei_cl *cl) struct mei_cl_cb *cb_pos = NULL; struct mei_cl_cb *cb_next = NULL; - if (list->status != 0) - return; if (list_empty(&list->mei_cb.cb_list)) return; @@ -338,8 +335,7 @@ void mei_reset(struct mei_device *dev, int interrupts_enabled) } } /* remove all waiting requests */ - if (dev->write_list.status == 0 && - !list_empty(&dev->write_list.mei_cb.cb_list)) { + if (!list_empty(&dev->write_list.mei_cb.cb_list)) { list_for_each_entry_safe(cb_pos, cb_next, &dev->write_list.mei_cb.cb_list, cb_list) { if (cb_pos) { diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c index ffa393f88bd6e504d21ccdce819f076219e5fbb6..ab9c4c0af098cb84e89bd10b24f333adf53a7a96 100644 --- a/drivers/staging/mei/interrupt.c +++ b/drivers/staging/mei/interrupt.c @@ -198,8 +198,7 @@ static int mei_irq_thread_read_client_message(struct mei_io_list *complete_list, unsigned char *buffer = NULL; dev_dbg(&dev->pdev->dev, "start client msg\n"); - if (!(dev->read_list.status == 0 && - !list_empty(&dev->read_list.mei_cb.cb_list))) + if (list_empty(&dev->read_list.mei_cb.cb_list)) goto quit; list_for_each_entry_safe(cb_pos, cb_next, @@ -413,8 +412,7 @@ static void mei_client_connect_response(struct mei_device *dev, dev->iamthif_state = MEI_IAMTHIF_IDLE; return; } - if (!dev->ctrl_rd_list.status && - !list_empty(&dev->ctrl_rd_list.mei_cb.cb_list)) { + if (!list_empty(&dev->ctrl_rd_list.mei_cb.cb_list)) { list_for_each_entry_safe(cb_pos, cb_next, &dev->ctrl_rd_list.mei_cb.cb_list, cb_list) { cl = (struct mei_cl *)cb_pos->file_private; @@ -455,8 +453,7 @@ static void mei_client_disconnect_response(struct mei_device *dev, rs->host_addr, rs->status); - if (!dev->ctrl_rd_list.status && - !list_empty(&dev->ctrl_rd_list.mei_cb.cb_list)) { + if (!list_empty(&dev->ctrl_rd_list.mei_cb.cb_list)) { list_for_each_entry_safe(cb_pos, cb_next, &dev->ctrl_rd_list.mei_cb.cb_list, cb_list) { cl = (struct mei_cl *)cb_pos->file_private; @@ -1238,7 +1235,7 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list, dev_dbg(&dev->pdev->dev, "complete all waiting for write cb.\n"); list = &dev->write_waiting_list; - if (!list->status && !list_empty(&list->mei_cb.cb_list)) { + if (!list_empty(&list->mei_cb.cb_list)) { list_for_each_entry_safe(cb_pos, cb_next, &list->mei_cb.cb_list, cb_list) { cl = (struct mei_cl *)cb_pos->file_private; @@ -1314,55 +1311,46 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list, return ~ENODEV; /* complete control write list CB */ - if (!dev->ctrl_wr_list.status) { - /* complete control write list CB */ - dev_dbg(&dev->pdev->dev, "complete control write list cb.\n"); - list_for_each_entry_safe(cb_pos, cb_next, + dev_dbg(&dev->pdev->dev, "complete control write list cb.\n"); + list_for_each_entry_safe(cb_pos, cb_next, &dev->ctrl_wr_list.mei_cb.cb_list, cb_list) { - cl = (struct mei_cl *) - cb_pos->file_private; - if (!cl) { - list_del(&cb_pos->cb_list); - return -ENODEV; - } - switch (cb_pos->major_file_operations) { - case MEI_CLOSE: - /* send disconnect message */ - ret = _mei_irq_thread_close(dev, slots, - cb_pos, cl, cmpl_list); - if (ret) - return ret; - - break; - case MEI_READ: - /* send flow control message */ - ret = _mei_irq_thread_read(dev, slots, - cb_pos, cl, cmpl_list); - if (ret) - return ret; + cl = (struct mei_cl *) cb_pos->file_private; + if (!cl) { + list_del(&cb_pos->cb_list); + return -ENODEV; + } + switch (cb_pos->major_file_operations) { + case MEI_CLOSE: + /* send disconnect message */ + ret = _mei_irq_thread_close(dev, slots, cb_pos, cl, cmpl_list); + if (ret) + return ret; - break; - case MEI_IOCTL: - /* connect message */ - if (!mei_other_client_is_connecting(dev, - cl)) - continue; - ret = _mei_irq_thread_ioctl(dev, slots, - cb_pos, cl, cmpl_list); - if (ret) - return ret; + break; + case MEI_READ: + /* send flow control message */ + ret = _mei_irq_thread_read(dev, slots, cb_pos, cl, cmpl_list); + if (ret) + return ret; - break; + break; + case MEI_IOCTL: + /* connect message */ + if (!mei_other_client_is_connecting(dev, cl)) + continue; + ret = _mei_irq_thread_ioctl(dev, slots, cb_pos, cl, cmpl_list); + if (ret) + return ret; - default: - BUG(); - } + break; + default: + BUG(); } + } /* complete write list CB */ - if (!dev->write_list.status && - !list_empty(&dev->write_list.mei_cb.cb_list)) { + if (!list_empty(&dev->write_list.mei_cb.cb_list)) { dev_dbg(&dev->pdev->dev, "complete write list cb.\n"); list_for_each_entry_safe(cb_pos, cb_next, &dev->write_list.mei_cb.cb_list, cb_list) { @@ -1621,7 +1609,7 @@ irqreturn_t mei_interrupt_thread_handler(int irq, void *dev_id) wake_up_interruptible(&dev->wait_recvd_msg); bus_message_received = false; } - if (complete_list.status || list_empty(&complete_list.mei_cb.cb_list)) + if (list_empty(&complete_list.mei_cb.cb_list)) return IRQ_HANDLED; diff --git a/drivers/staging/mei/iorw.c b/drivers/staging/mei/iorw.c index 8a61d126651586440b2094fa61060f5df8683047..36d0465cd39726ccb0cd7de8968b0bac4dc8aaee 100644 --- a/drivers/staging/mei/iorw.c +++ b/drivers/staging/mei/iorw.c @@ -231,8 +231,7 @@ struct mei_cl_cb *find_amthi_read_list_entry( struct mei_cl_cb *cb_pos = NULL; struct mei_cl_cb *cb_next = NULL; - if (!dev->amthi_read_complete_list.status && - !list_empty(&dev->amthi_read_complete_list.mei_cb.cb_list)) { + if (!list_empty(&dev->amthi_read_complete_list.mei_cb.cb_list)) { list_for_each_entry_safe(cb_pos, cb_next, &dev->amthi_read_complete_list.mei_cb.cb_list, cb_list) { cl_temp = (struct mei_cl *)cb_pos->file_private; @@ -565,8 +564,7 @@ void mei_run_next_iamthif_cmd(struct mei_device *dev) dev->iamthif_timer = 0; dev->iamthif_file_object = NULL; - if (dev->amthi_cmd_list.status == 0 && - !list_empty(&dev->amthi_cmd_list.mei_cb.cb_list)) { + if (!list_empty(&dev->amthi_cmd_list.mei_cb.cb_list)) { dev_dbg(&dev->pdev->dev, "complete amthi cmd_list cb.\n"); list_for_each_entry_safe(cb_pos, cb_next, diff --git a/drivers/staging/mei/main.c b/drivers/staging/mei/main.c index 1ea04b31f6118e0ad2b278f6e709a3c04f8a0ea2..b470bb0c1037145fcede073547406040363eaefc 100644 --- a/drivers/staging/mei/main.c +++ b/drivers/staging/mei/main.c @@ -201,8 +201,7 @@ static struct mei_cl_cb *find_read_list_entry( struct mei_cl_cb *cb_pos = NULL; struct mei_cl_cb *cb_next = NULL; - if (!dev->read_list.status && - !list_empty(&dev->read_list.mei_cb.cb_list)) { + if (!list_empty(&dev->read_list.mei_cb.cb_list)) { dev_dbg(&dev->pdev->dev, "remove read_list CB\n"); list_for_each_entry_safe(cb_pos, cb_next, diff --git a/drivers/staging/mei/mei_dev.h b/drivers/staging/mei/mei_dev.h index 13c2ba022974b6caf87df5f5551929138e13f58e..5e8b64ee61ff19ba1bdd8fe4becb17146c75f74a 100644 --- a/drivers/staging/mei/mei_dev.h +++ b/drivers/staging/mei/mei_dev.h @@ -168,7 +168,6 @@ struct mei_cl { struct mei_io_list { struct mei_cl_cb mei_cb; - int status; }; /* MEI private device struct */