aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/mei/client.c
diff options
context:
space:
mode:
authorAlexander Usyskin <alexander.usyskin@intel.com>2016-11-16 22:51:29 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-11-17 16:37:49 +0100
commit7c7a6077f5c7a35fc03a7f452875d8440dd1bc8d (patch)
treee495b143494b3a7b98ce1841d8cc3c2a5f97c2cf /drivers/misc/mei/client.c
parentmei: bus: make a client pointer always available (diff)
downloadlinux-dev-7c7a6077f5c7a35fc03a7f452875d8440dd1bc8d.tar.xz
linux-dev-7c7a6077f5c7a35fc03a7f452875d8440dd1bc8d.zip
mei: bus: split RX and async notification callbacks
Split callbacks for RX and async notification events on mei bus to eliminate synchronization problems and to open way for RX optimizations. 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/misc/mei/client.c')
-rw-r--r--drivers/misc/mei/client.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c
index 46ee9155ada6..9635b14b6011 100644
--- a/drivers/misc/mei/client.c
+++ b/drivers/misc/mei/client.c
@@ -673,6 +673,11 @@ int mei_cl_unlink(struct mei_cl *cl)
list_del_init(&cl->link);
cl->state = MEI_FILE_UNINITIALIZED;
+ cl->writing_state = MEI_IDLE;
+
+ WARN_ON(!list_empty(&cl->rd_completed) ||
+ !list_empty(&cl->rd_pending) ||
+ !list_empty(&cl->link));
return 0;
}