aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/mei
diff options
context:
space:
mode:
authorAlexander Usyskin <alexander.usyskin@intel.com>2016-07-25 18:06:02 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-08-30 08:39:42 -0400
commite51dfa5a7f89b2c96371559b0c9772fd41376464 (patch)
tree5888b2929ea054a07e83cc1cb8384c68efe3ecb5 /drivers/misc/mei
parentdfe5f753d06a4eaf362872a7f30aabe5f5fc968c (diff)
mei: prepare read cb for fixed address clients on the receive path only.
The read callbacks for the fixed address clients, that don't have flow control are built now on the receive path. In order to have a single allocation place we remove the allocation from the read request. Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/mei')
-rw-r--r--drivers/misc/mei/client.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c
index 2a09db86e50e..05cacc3e718f 100644
--- a/drivers/misc/mei/client.c
+++ b/drivers/misc/mei/client.c
@@ -1459,17 +1459,15 @@ int mei_cl_read_start(struct mei_cl *cl, size_t length, const struct file *fp)
1459 return -ENOTTY; 1459 return -ENOTTY;
1460 } 1460 }
1461 1461
1462 if (mei_cl_is_fixed_address(cl))
1463 return 0;
1464
1462 /* always allocate at least client max message */ 1465 /* always allocate at least client max message */
1463 length = max_t(size_t, length, mei_cl_mtu(cl)); 1466 length = max_t(size_t, length, mei_cl_mtu(cl));
1464 cb = mei_cl_alloc_cb(cl, length, MEI_FOP_READ, fp); 1467 cb = mei_cl_alloc_cb(cl, length, MEI_FOP_READ, fp);
1465 if (!cb) 1468 if (!cb)
1466 return -ENOMEM; 1469 return -ENOMEM;
1467 1470
1468 if (mei_cl_is_fixed_address(cl)) {
1469 list_add_tail(&cb->list, &cl->rd_pending);
1470 return 0;
1471 }
1472
1473 rets = pm_runtime_get(dev->dev); 1471 rets = pm_runtime_get(dev->dev);
1474 if (rets < 0 && rets != -EINPROGRESS) { 1472 if (rets < 0 && rets != -EINPROGRESS) {
1475 pm_runtime_put_noidle(dev->dev); 1473 pm_runtime_put_noidle(dev->dev);