Patch "mei: move write cb to completion on credentials failures" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
mei: move write cb to completion on credentials failures
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mei-move-write-cb-to-completion-on-credentials-failures.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
e09ee853c92011860a4bd2fbdf6126f60fc16bd3Mon Sep 17 00:00:00 2001
From: Alexander Usyskin <[email protected]>
Date: Wed, 14 Dec 2016 17:56:52 +0200
Subject: mei: move write cb to completion on credentials failures
From: Alexander Usyskin <[email protected]>
commit e09ee853c92011860a4bd2fbdf6126f60fc16bd3 upstream.
The credentials handling was pushed to the write handlers but error handling wasn't done properly.
Move write callbacks to completion queue to destroy them and to notify a blocked writer about the failure
--- drivers/misc/mei/client.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-)
drivers/misc/mei/client.c +12 -8
@@ -1536,7 +1536,7 @@ int mei_cl_irq_write(struct mei_cl *cl, rets = first_chunk ?mei_cl_tx_flow_ctrl_creds (cl) :1 ;if (rets <0 ) -return rets; + goto err;if (rets ==0 ) {cl_dbg (dev, cl,"No flow control credentials: not sending.\n" );
@@ -1570,11 +1570,8 @@ int mei_cl_irq_write(struct mei_cl *cl, cb->buf.size, cb->buf_idx); rets =mei_write_message (dev, &mei_hdr, buf->data + cb->buf_idx); -if (rets) { - cl->status = rets; -list_move_tail (&cb->list, &cmpl_list->list); -return rets; - } +if (rets) + goto err; cl->status =0 ; cl->writing_state =MEI_WRITING ;
@@ -1582,14 +1579,21 @@ int mei_cl_irq_write(struct mei_cl *cl, cb->completed = mei_hdr.msg_complete ==1 ;if (first_chunk) { -if (mei_cl_tx_flow_ctrl_creds_reduce (cl)) -return -EIO ; +if (mei_cl_tx_flow_ctrl_creds_reduce (cl)) { + rets = -EIO ; + goto err; + } }if (mei_hdr.msg_complete)list_move_tail (&cb->list, &dev->write_waiting_list.list);return 0 ; + +err: + cl->status = rets; +list_move_tail (&cb->list, &cmpl_list->list); +return rets; }/**
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/mei-bus-fix-mei_cldev_enable-kdoc.patch queue-4.9/mei-fix-parameter-rename-kdoc.patch queue-4.9/mei-move-write-cb-to-completion-on-credentials-failures.patch