This is a note to let you know that I've just added the patch titled

    mei: fix return value on disconnect timeout

to the 3.16-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     mei-fix-return-value-on-disconnect-timeout.patch
and it can be found in the queue-3.16 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From fe2f17eb3da38ac0d5a00c511255bf3a33d16d24 Mon Sep 17 00:00:00 2001
From: Alexander Usyskin <[email protected]>
Date: Thu, 17 Jul 2014 10:53:38 +0300
Subject: mei: fix return value on disconnect timeout

From: Alexander Usyskin <[email protected]>

commit fe2f17eb3da38ac0d5a00c511255bf3a33d16d24 upstream.

wait_event_timeout can return 0 or the remaining jiffies
so return -ETIME if disconnected state not reached.

Signed-off-by: Alexander Usyskin <[email protected]>
Signed-off-by: Tomas Winkler <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/misc/mei/client.c |   15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

--- a/drivers/misc/mei/client.c
+++ b/drivers/misc/mei/client.c
@@ -459,7 +459,7 @@ int mei_cl_disconnect(struct mei_cl *cl)
 {
        struct mei_device *dev;
        struct mei_cl_cb *cb;
-       int rets, err;
+       int rets;
 
        if (WARN_ON(!cl || !cl->dev))
                return -ENODEV;
@@ -501,23 +501,18 @@ int mei_cl_disconnect(struct mei_cl *cl)
        }
        mutex_unlock(&dev->device_lock);
 
-       err = wait_event_timeout(dev->wait_recvd_msg,
+       wait_event_timeout(dev->wait_recvd_msg,
                        MEI_FILE_DISCONNECTED == cl->state,
                        mei_secs_to_jiffies(MEI_CL_CONNECT_TIMEOUT));
 
        mutex_lock(&dev->device_lock);
+
        if (MEI_FILE_DISCONNECTED == cl->state) {
                rets = 0;
                cl_dbg(dev, cl, "successfully disconnected from FW client.\n");
        } else {
-               rets = -ENODEV;
-               if (MEI_FILE_DISCONNECTED != cl->state)
-                       cl_err(dev, cl, "wrong status client disconnect.\n");
-
-               if (err)
-                       cl_dbg(dev, cl, "wait failed disconnect err=%d\n", err);
-
-               cl_err(dev, cl, "failed to disconnect from FW client.\n");
+               cl_dbg(dev, cl, "timeout on disconnect from FW client.\n");
+               rets = -ETIME;
        }
 
        mei_io_list_flush(&dev->ctrl_rd_list, cl);


Patches currently in stable-queue which might be from 
[email protected] are

queue-3.16/mei-fix-return-value-on-disconnect-timeout.patch
queue-3.16/mei-start-disconnect-request-timer-consistently.patch
queue-3.16/mei-don-t-schedule-suspend-in-pm-idle.patch
queue-3.16/mei-reset-client-connection-state-on-timeout.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to