From: Natalia Ovsyanikov <[email protected]> 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 <[email protected]> Signed-off-by: Natalia Ovsyanikov <[email protected]> Signed-off-by: Tomas Winkler <[email protected]> --- drivers/staging/mei/interrupt.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c index 38e0197..ad944b2 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) -- 1.7.4.4 _______________________________________________ devel mailing list [email protected] http://driverdev.linuxdriverproject.org/mailman/listinfo/devel
