mei: init: Flush scheduled work before resetting the device
Flushing pending work items before resetting the device makes more sense than doing so afterwards. Some of them, like e.g. the NFC initialization one, find themselves with client IDs changed after the reset, eventually leading to trigger a client.c:mei_me_cl_by_id() warning after a few modprobe/rmmod cycles. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
317ddd256b
Коммит
5e85b36448
|
@ -197,6 +197,8 @@ void mei_stop(struct mei_device *dev)
|
||||||
{
|
{
|
||||||
dev_dbg(&dev->pdev->dev, "stopping the device.\n");
|
dev_dbg(&dev->pdev->dev, "stopping the device.\n");
|
||||||
|
|
||||||
|
flush_scheduled_work();
|
||||||
|
|
||||||
mutex_lock(&dev->device_lock);
|
mutex_lock(&dev->device_lock);
|
||||||
|
|
||||||
cancel_delayed_work(&dev->timer_work);
|
cancel_delayed_work(&dev->timer_work);
|
||||||
|
@ -210,8 +212,6 @@ void mei_stop(struct mei_device *dev)
|
||||||
|
|
||||||
mutex_unlock(&dev->device_lock);
|
mutex_unlock(&dev->device_lock);
|
||||||
|
|
||||||
flush_scheduled_work();
|
|
||||||
|
|
||||||
mei_watchdog_unregister(dev);
|
mei_watchdog_unregister(dev);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mei_stop);
|
EXPORT_SYMBOL_GPL(mei_stop);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче