diff options
author | Alexander Usyskin <alexander.usyskin@intel.com> | 2014-03-06 16:53:53 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-03-09 00:56:21 -0500 |
commit | 31a5ef240e6bfb55764512104854d5d1ea345882 (patch) | |
tree | a8ffa7298b951150e0e11f473ae4fd3fe2e060d1 /drivers/misc/mei/interrupt.c | |
parent | 0db03f3f0c3b8c95346e48a1a552132ca332fe8f (diff) |
mei: fix regressions caused by removing ext_msg
1. Delete cb from list before freeing it
2. Fix missed break that leads to
switch case fall-through and BUG invocation.
Regression from:
commit 6bb948c9e500d24321c36c67c81daf8d1a7e561e
mei: get rid of ext_msg
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/mei/interrupt.c')
-rw-r--r-- | drivers/misc/mei/interrupt.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c index 5aab335f585b..2fbf0c0625ed 100644 --- a/drivers/misc/mei/interrupt.c +++ b/drivers/misc/mei/interrupt.c | |||
@@ -187,6 +187,7 @@ static int mei_cl_irq_disconnect_rsp(struct mei_cl *cl, struct mei_cl_cb *cb, | |||
187 | 187 | ||
188 | cl->state = MEI_FILE_DISCONNECTED; | 188 | cl->state = MEI_FILE_DISCONNECTED; |
189 | cl->status = 0; | 189 | cl->status = 0; |
190 | list_del(&cb->list); | ||
190 | mei_io_cb_free(cb); | 191 | mei_io_cb_free(cb); |
191 | 192 | ||
192 | return ret; | 193 | return ret; |
@@ -522,6 +523,7 @@ int mei_irq_write_handler(struct mei_device *dev, struct mei_cl_cb *cmpl_list) | |||
522 | ret = mei_cl_irq_disconnect_rsp(cl, cb, cmpl_list); | 523 | ret = mei_cl_irq_disconnect_rsp(cl, cb, cmpl_list); |
523 | if (ret) | 524 | if (ret) |
524 | return ret; | 525 | return ret; |
526 | break; | ||
525 | default: | 527 | default: |
526 | BUG(); | 528 | BUG(); |
527 | } | 529 | } |