diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2014-01-08 20:19:21 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-01-08 15:25:15 -0800 |
commit | 544f94601409653f07ae6e22d4a39e3a90dceead (patch) | |
tree | 0939fcf8facae8633eebe3fd40b4f4f00788d76e /drivers/misc/mei/mei_dev.h | |
parent | 634608f27acd098b245ca6fe60e06701185eb170 (diff) |
mei: do not run reset flow from the interrupt thread
This fixes a potential deadlock in case of a firmware
initiated reset
mei_reset has a dialog with the interrupt thread hence
it has to be run from an another work item
Most of the mei_resets were called from mei_hbm_dispatch
which is called in interrupt thread context so this
function underwent major revamp. The error code is
propagated to the interrupt thread and if needed
the reset is scheduled from there.
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>
Diffstat (limited to 'drivers/misc/mei/mei_dev.h')
-rw-r--r-- | drivers/misc/mei/mei_dev.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/misc/mei/mei_dev.h b/drivers/misc/mei/mei_dev.h index d92ca0c93f7f..3f242e15f8f1 100644 --- a/drivers/misc/mei/mei_dev.h +++ b/drivers/misc/mei/mei_dev.h @@ -428,6 +428,7 @@ struct mei_device { bool iamthif_canceled; struct work_struct init_work; + struct work_struct reset_work; /* List of bus devices */ struct list_head device_list; |