aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Usyskin <alexander.usyskin@intel.com>2014-03-06 16:53:53 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-03-09 00:56:21 -0500
commit31a5ef240e6bfb55764512104854d5d1ea345882 (patch)
treea8ffa7298b951150e0e11f473ae4fd3fe2e060d1
parent0db03f3f0c3b8c95346e48a1a552132ca332fe8f (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>
-rw-r--r--drivers/misc/mei/interrupt.c2
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 }