aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/mei/main.c
diff options
context:
space:
mode:
authorTomas Winkler <tomas.winkler@intel.com>2012-07-23 07:05:39 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-08-16 12:40:28 -0400
commit07b509b7943e5594f3f228e5b62a49cf6a033709 (patch)
tree6271fdff08b54ab605cbc666cdcc054d41d3e44a /drivers/misc/mei/main.c
parent0d7614f09c1ebdbaa1599a5aba7593f147bf96ee (diff)
mei: revamp me client search function
me client search functions returns index into me_client array according me client id or me client uuid. 1. Add common prefix for the functions mei_me_cl_<> 2. create new function mei_me_cl_by_id that wraps open coded loops scattered over the code 3. rename mei_find_me_client_index to mei_me_cl_by_uuid 4. rename mei_find_me_client_update_filext to mei_me_cl_update_filext and updates its parameter names Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/mei/main.c')
-rw-r--r--drivers/misc/mei/main.c31
1 files changed, 6 insertions, 25 deletions
diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c
index 092330208869..b0903bd44bf7 100644
--- a/drivers/misc/mei/main.c
+++ b/drivers/misc/mei/main.c
@@ -393,10 +393,9 @@ static ssize_t mei_read(struct file *file, char __user *ubuf,
393 393
394 if ((cl->sm_state & MEI_WD_STATE_INDEPENDENCE_MSG_SENT) == 0) { 394 if ((cl->sm_state & MEI_WD_STATE_INDEPENDENCE_MSG_SENT) == 0) {
395 /* Do not allow to read watchdog client */ 395 /* Do not allow to read watchdog client */
396 i = mei_find_me_client_index(dev, mei_wd_guid); 396 i = mei_me_cl_by_uuid(dev, &mei_wd_guid);
397 if (i >= 0) { 397 if (i >= 0) {
398 struct mei_me_client *me_client = &dev->me_clients[i]; 398 struct mei_me_client *me_client = &dev->me_clients[i];
399
400 if (cl->me_client_id == me_client->client_id) { 399 if (cl->me_client_id == me_client->client_id) {
401 rets = -EBADF; 400 rets = -EBADF;
402 goto out; 401 goto out;
@@ -620,22 +619,12 @@ static ssize_t mei_write(struct file *file, const char __user *ubuf,
620 rets = -ENODEV; 619 rets = -ENODEV;
621 goto unlock_dev; 620 goto unlock_dev;
622 } 621 }
623 for (i = 0; i < dev->me_clients_num; i++) { 622 i = mei_me_cl_by_id(dev, dev->iamthif_cl.me_client_id);
624 if (dev->me_clients[i].client_id == 623 if (i < 0) {
625 dev->iamthif_cl.me_client_id)
626 break;
627 }
628
629 if (WARN_ON(dev->me_clients[i].client_id != cl->me_client_id)) {
630 rets = -ENODEV; 624 rets = -ENODEV;
631 goto unlock_dev; 625 goto unlock_dev;
632 } 626 }
633 if (i == dev->me_clients_num || 627 if (length > dev->me_clients[i].props.max_msg_length ||
634 (dev->me_clients[i].client_id !=
635 dev->iamthif_cl.me_client_id)) {
636 rets = -ENODEV;
637 goto unlock_dev;
638 } else if (length > dev->me_clients[i].props.max_msg_length ||
639 length <= 0) { 628 length <= 0) {
640 rets = -EMSGSIZE; 629 rets = -EMSGSIZE;
641 goto unlock_dev; 630 goto unlock_dev;
@@ -688,16 +677,8 @@ static ssize_t mei_write(struct file *file, const char __user *ubuf,
688 cl->me_client_id); 677 cl->me_client_id);
689 goto unlock_dev; 678 goto unlock_dev;
690 } 679 }
691 for (i = 0; i < dev->me_clients_num; i++) { 680 i = mei_me_cl_by_id(dev, cl->me_client_id);
692 if (dev->me_clients[i].client_id == 681 if (i < 0) {
693 cl->me_client_id)
694 break;
695 }
696 if (WARN_ON(dev->me_clients[i].client_id != cl->me_client_id)) {
697 rets = -ENODEV;
698 goto unlock_dev;
699 }
700 if (i == dev->me_clients_num) {
701 rets = -ENODEV; 682 rets = -ENODEV;
702 goto unlock_dev; 683 goto unlock_dev;
703 } 684 }