summaryrefslogtreecommitdiffstats
path: root/drivers/misc
diff options
context:
space:
mode:
authorAlexander Usyskin <alexander.usyskin@intel.com>2016-06-16 10:58:54 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-08-30 08:36:39 -0400
commit1eb5bd4d83f566e5ea8521b6020d0cfcb8f1c3ef (patch)
tree9b64729dc95627aebdd85fac2a0697d10e435a08 /drivers/misc
parent041330d9c33e975791f4d543db3f25d9a6c474c9 (diff)
mei: drop read complete queue emptiness check
In the course of the read flow we want to wait for read completion only if the read queue is empty. However the calling list_empty(&cl->rd_completed) is a duplication as the same check was performed by mei_cl_read_cb() and the waiting is skipped if it returns not NULL. 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')
-rw-r--r--drivers/misc/mei/bus.c3
-rw-r--r--drivers/misc/mei/main.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
index 1f33fea9299f..63411ddfb83d 100644
--- a/drivers/misc/mei/bus.c
+++ b/drivers/misc/mei/bus.c
@@ -126,7 +126,8 @@ ssize_t __mei_cl_recv(struct mei_cl *cl, u8 *buf, size_t length)
126 goto out; 126 goto out;
127 127
128 /* wait on event only if there is no other waiter */ 128 /* wait on event only if there is no other waiter */
129 if (list_empty(&cl->rd_completed) && !waitqueue_active(&cl->rx_wait)) { 129 /* synchronized under device mutex */
130 if (!waitqueue_active(&cl->rx_wait)) {
130 131
131 mutex_unlock(&bus->device_lock); 132 mutex_unlock(&bus->device_lock);
132 133
diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c
index a8d0471f817f..3326bde7fba1 100644
--- a/drivers/misc/mei/main.c
+++ b/drivers/misc/mei/main.c
@@ -183,7 +183,8 @@ static ssize_t mei_read(struct file *file, char __user *ubuf,
183 goto out; 183 goto out;
184 } 184 }
185 185
186 if (list_empty(&cl->rd_completed) && !waitqueue_active(&cl->rx_wait)) { 186 /* synchronized under device mutex */
187 if (!waitqueue_active(&cl->rx_wait)) {
187 if (file->f_flags & O_NONBLOCK) { 188 if (file->f_flags & O_NONBLOCK) {
188 rets = -EAGAIN; 189 rets = -EAGAIN;
189 goto out; 190 goto out;