mei: fix return value on disconnect timeout
authorAlexander Usyskin <alexander.usyskin@intel.com>
Thu, 17 Jul 2014 07:53:38 +0000 (10:53 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Jul 2014 01:38:37 +0000 (18:38 -0700)
wait_event_timeout can return 0 or the remaining jiffies
so return -ETIME if disconnected state not reached.

Cc: stable@vger.kernel.org # 3.10+
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>
drivers/misc/mei/client.c

index 65545007745ef1a89146cf6f437e23cf714d4646..324e1de936871952c726d42a33826c19a827cdb8 100644 (file)
@@ -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);
This page took 0.025522 seconds and 5 git commands to generate.