From: Alexander Usyskin <alexander.usys...@intel.com>

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.usys...@intel.com>
Signed-off-by: Tomas Winkler <tomas.wink...@intel.com>
---
V2: resend
 drivers/misc/mei/client.c | 8 +++-----
 1 file 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)
                return  -ENOTTY;
        }
 
+       if (mei_cl_is_fixed_address(cl))
+               return 0;
+
        /* always allocate at least client max message */
        length = max_t(size_t, length, mei_cl_mtu(cl));
        cb = mei_cl_alloc_cb(cl, length, MEI_FOP_READ, fp);
        if (!cb)
                return -ENOMEM;
 
-       if (mei_cl_is_fixed_address(cl)) {
-               list_add_tail(&cb->list, &cl->rd_pending);
-               return 0;
-       }
-
        rets = pm_runtime_get(dev->dev);
        if (rets < 0 && rets != -EINPROGRESS) {
                pm_runtime_put_noidle(dev->dev);
-- 
2.7.4

Reply via email to