summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAlexander Usyskin <alexander.usyskin@intel.com>2014-07-17 10:53:34 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-09-05 16:36:27 -0700
commita7c2d23699f7d059498abcbffaa38d60603291ad (patch)
treeebab5e8f7715ab184b3893976bcfa6cbda148ea4 /drivers
parent890d72d98598c475a56f74f154274086bc071563 (diff)
mei: reset client connection state on timeout
commit 3e37ebb7183f0c4eb92a88c60657ac319c01b3e9 upstream. On connection timeout we leave the connecting client in connecting state. Since a new connection is stalled till previous connection is completed in this case no new connection is possible till the user space does release the file handle. Therefore on timeout we move the client to disconnected state. 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')
-rw-r--r--drivers/misc/mei/client.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c
index 59d20c599b16..9f8ab28bcb60 100644
--- a/drivers/misc/mei/client.c
+++ b/drivers/misc/mei/client.c
@@ -616,6 +616,7 @@ int mei_cl_connect(struct mei_cl *cl, struct file *file)
mutex_lock(&dev->device_lock);
if (cl->state != MEI_FILE_CONNECTED) {
+ cl->state = MEI_FILE_DISCONNECTED;
/* something went really wrong */
if (!cl->status)
cl->status = -EFAULT;