diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2012-05-29 16:39:12 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-06-13 13:52:14 -0700 |
commit | 1e69d64a28cf3cabd095ada3a49f081c97f997dd (patch) | |
tree | 9397a64345565c5b3a41f81fb3977723f005a923 /drivers/misc | |
parent | a44cab4aff7e72e7052521121fd8ceca51351534 (diff) | |
download | linux-1e69d64a28cf3cabd095ada3a49f081c97f997dd.tar.bz2 |
misc: mei: fix stalled read
This bug caused severe connectivity issue in the LMS application
(LMS is described in Documentation/misc-devices/mei/mei.txt)
The bug was introduced in patch:
commit 1ccb7b6249f9bc50678e2a383084ed0a34cc9239
staging/mei: propagate error codes up in the write flow
The patch has reverted the return value logic of some fo function but
the conditional in _mei_irq_thread_read function was not swapped
making read always entering the error path
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/interrupt.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c index 93936f1b75eb..23f5463d4cae 100644 --- a/drivers/misc/mei/interrupt.c +++ b/drivers/misc/mei/interrupt.c @@ -835,7 +835,7 @@ static int _mei_irq_thread_read(struct mei_device *dev, s32 *slots, struct mei_cl *cl, struct mei_io_list *cmpl_list) { - if ((*slots * sizeof(u32)) >= (sizeof(struct mei_msg_hdr) + + if ((*slots * sizeof(u32)) < (sizeof(struct mei_msg_hdr) + sizeof(struct hbm_flow_control))) { /* return the cancel routine */ list_del(&cb_pos->cb_list); |