summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Usyskin <alexander.usyskin@intel.com>2015-06-13 21:18:40 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-06-13 19:48:02 -0700
commitc241e9b1d9ee7292d708d2298bc87f1455aad0c7 (patch)
tree01bc98a4e5bf1b1dfb4c754ce785bfc3666e97ba
parent5069288bd477857fd1894452aa61416f07372060 (diff)
downloadlinux-c241e9b1d9ee7292d708d2298bc87f1455aad0c7.tar.gz
linux-c241e9b1d9ee7292d708d2298bc87f1455aad0c7.tar.bz2
linux-c241e9b1d9ee7292d708d2298bc87f1455aad0c7.zip
mei: reset flow control on the last client disconnection
The FW resets the flow control for single buffer clients when the last host client disconnects, also the driver has to follow this policy and zero the flow control counter in such case. Cc: <stable@vger.kernel.org> #4.1 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>
-rw-r--r--drivers/misc/mei/client.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c
index 7a5a6636f0fd..d089b136f12c 100644
--- a/drivers/misc/mei/client.c
+++ b/drivers/misc/mei/client.c
@@ -755,6 +755,9 @@ void mei_cl_set_disconnected(struct mei_cl *cl)
if (!WARN_ON(cl->me_cl->connect_count == 0))
cl->me_cl->connect_count--;
+ if (cl->me_cl->connect_count == 0)
+ cl->me_cl->mei_flow_ctrl_creds = 0;
+
mei_me_cl_put(cl->me_cl);
cl->me_cl = NULL;
}