diff options
author | Alexander Usyskin <alexander.usyskin@intel.com> | 2018-11-06 12:04:40 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-11-07 13:53:03 +0100 |
commit | a19bf05359e6c5249766cbbf2937ef83fc9001f9 (patch) | |
tree | 909a702c12b7e6c64494d8fec06ea50c27e4969a | |
parent | 87d63352b49e421bb272dbb553bcf7db316c168f (diff) | |
download | linux-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.c | 4 |
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); |