OSDN Git Service

mei: fix regressions caused by removing ext_msg
authorAlexander Usyskin <alexander.usyskin@intel.com>
Thu, 6 Mar 2014 21:53:53 +0000 (23:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 9 Mar 2014 05:56:21 +0000 (21:56 -0800)
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>
drivers/misc/mei/interrupt.c

index 5aab335..2fbf0c0 100644 (file)
@@ -187,6 +187,7 @@ static int mei_cl_irq_disconnect_rsp(struct mei_cl *cl, struct mei_cl_cb *cb,
 
        cl->state = MEI_FILE_DISCONNECTED;
        cl->status = 0;
+       list_del(&cb->list);
        mei_io_cb_free(cb);
 
        return ret;
@@ -522,6 +523,7 @@ int mei_irq_write_handler(struct mei_device *dev, struct mei_cl_cb *cmpl_list)
                        ret = mei_cl_irq_disconnect_rsp(cl, cb, cmpl_list);
                        if (ret)
                                return ret;
+                       break;
                default:
                        BUG();
                }