summaryrefslogtreecommitdiffstats
path: root/drivers/misc
diff options
context:
space:
mode:
authorTomas Winkler2012-05-29 15:39:12 +0200
committerGreg Kroah-Hartman2012-06-13 22:52:14 +0200
commit1e69d64a28cf3cabd095ada3a49f081c97f997dd (patch)
tree9397a64345565c5b3a41f81fb3977723f005a923 /drivers/misc
parentmisc: mei: unregister misc device in pci_remove function (diff)
downloadkernel-qcow2-linux-1e69d64a28cf3cabd095ada3a49f081c97f997dd.tar.gz
kernel-qcow2-linux-1e69d64a28cf3cabd095ada3a49f081c97f997dd.tar.xz
kernel-qcow2-linux-1e69d64a28cf3cabd095ada3a49f081c97f997dd.zip
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.c2
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);