summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNatalia Ovsyanikov <natalia.ovsyanikov@intel.com>2011-12-05 00:16:54 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2011-12-08 15:00:44 -0800
commite8cd29d8e26b9f7526297cdfb031ce757502a3b4 (patch)
tree89b33cf6ed3b4e13cf992df318a6e55b4911a889 /drivers
parent3a5352fc9d316fe1be18daf80571e80805e06f11 (diff)
staging/mei: fix failure for multiple mei clients connection
The irq handler processes queued mei clients connect requests, which were not transferred to the device in ioctl context due to unavailability of the write buffer. The handler may transfer the connection request only if there is no other ongoing requests for the same mei id. This condition was implemented inversely which depending on the write buffer availability lead to seemingly random failures during connection attempts. Cc: Oren Weil <oren.jer.weil@intel.com> Signed-off-by: Natalia Ovsyanikov <natalia.ovsyanikov@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/mei/interrupt.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c
index 38e0197475e2..ad944b2c1da1 100644
--- a/drivers/staging/mei/interrupt.c
+++ b/drivers/staging/mei/interrupt.c
@@ -1328,7 +1328,7 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
break;
case MEI_IOCTL:
/* connect message */
- if (!mei_other_client_is_connecting(dev, cl))
+ if (mei_other_client_is_connecting(dev, cl))
continue;
ret = _mei_irq_thread_ioctl(dev, slots, pos, cl, cmpl_list);
if (ret)