From: Tomas Winkler Date: Tue, 23 Apr 2013 04:38:12 +0000 (+0300) Subject: mei: reduce flow control only for completed messages X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=70135393812f4aa10aa891725786a7657064c2fc;p=openwrt%2Fstaging%2Fblogic.git mei: reduce flow control only for completed messages This fixes bug when only first chunk of a large message split by hbuf_max_len is written to the hardware. All the consequent chunks will not get a new credit. A regression introduced by the commit 0ef319c93cebff9f82bdd0cdbb298f2dd00acda8 mei: streamline write complete flow function Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c index 74730713a8d3..5ee2f07c929d 100644 --- a/drivers/misc/mei/interrupt.c +++ b/drivers/misc/mei/interrupt.c @@ -356,13 +356,14 @@ static int mei_irq_thread_write_complete(struct mei_device *dev, s32 *slots, return -ENODEV; } - if (mei_cl_flow_ctrl_reduce(cl)) - return -ENODEV; cl->status = 0; cb->buf_idx += mei_hdr.length; - if (mei_hdr.msg_complete) + if (mei_hdr.msg_complete) { + if (mei_cl_flow_ctrl_reduce(cl)) + return -ENODEV; list_move_tail(&cb->list, &dev->write_waiting_list.list); + } return 0; }