summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Usyskin <alexander.usyskin@intel.com>2018-11-06 12:04:40 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-11-07 13:53:03 +0100
commita19bf05359e6c5249766cbbf2937ef83fc9001f9 (patch)
tree909a702c12b7e6c64494d8fec06ea50c27e4969a
parent87d63352b49e421bb272dbb553bcf7db316c168f (diff)
downloadlinux-a19bf05359e6c5249766cbbf2937ef83fc9001f9.tar.gz
linux-a19bf05359e6c5249766cbbf2937ef83fc9001f9.tar.bz2
linux-a19bf05359e6c5249766cbbf2937ef83fc9001f9.zip
mei: expedite ioctl return on the notify set operation error
The notify set operation ioctl will wait till timeout is expired even in case when the FW returned an error. Check the status field of the client object in wait_event_timeout() to determine if the caller can return earlier. 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.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c
index ee58561ceb08..1fe9426ce48b 100644
--- a/drivers/misc/mei/client.c
+++ b/drivers/misc/mei/client.c
@@ -1357,7 +1357,9 @@ int mei_cl_notify_request(struct mei_cl *cl,
mutex_unlock(&dev->device_lock);
wait_event_timeout(cl->wait,
- cl->notify_en == request || !mei_cl_is_connected(cl),
+ cl->notify_en == request ||
+ cl->status ||
+ !mei_cl_is_connected(cl),
mei_secs_to_jiffies(MEI_CL_CONNECT_TIMEOUT));
mutex_lock(&dev->device_lock);