mei: amthif: clean command queue upon disconnection
authorTomas Winkler <tomas.winkler@intel.com>
Fri, 27 Jan 2017 14:32:43 +0000 (16:32 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 31 Jan 2017 10:07:43 +0000 (11:07 +0100)
In order to prevent memory leak clean up the amthif command
queue upon disconnection. The issue may happen only on error path
as the command queue is cleaned upon file descriptor close.
And remove the cleanup from mei_cl_flush_queues as this code
is never reached for amthif client.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mei/client.c

index 923fad39535c1e4ff242d27ad2483e032f281996..d9e3e68bab890dd03b743c2b899afbc73d5dd8da 100644 (file)
@@ -546,7 +546,6 @@ int mei_cl_flush_queues(struct mei_cl *cl, const struct file *fp)
        mei_io_list_free(&cl->dev->write_waiting_list, cl);
        mei_io_list_flush(&cl->dev->ctrl_wr_list, cl);
        mei_io_list_flush(&cl->dev->ctrl_rd_list, cl);
-       mei_io_list_flush(&cl->dev->amthif_cmd_list, cl);
 
        mei_cl_read_cb_flush(cl, fp);
 
@@ -769,6 +768,7 @@ static void mei_cl_set_disconnected(struct mei_cl *cl)
        mei_io_list_free(&dev->write_waiting_list, cl);
        mei_io_list_flush(&dev->ctrl_rd_list, cl);
        mei_io_list_flush(&dev->ctrl_wr_list, cl);
+       mei_io_list_free(&dev->amthif_cmd_list, cl);
        mei_cl_wake_all(cl);
        cl->rx_flow_ctrl_creds = 0;
        cl->tx_flow_ctrl_creds = 0;