linux/drivers/misc/mei
Tomas Winkler a733ded50b mei: fix deadlock on mei reset
This patch fixes 'mei: synchronize irq before initiating a reset'
The patch had introduced a deadlock between irq thread and mei_reset()
as they are both holding the same device lock.

---> device_lock:
	mei_reset()
                        <---- interrupt thread
	                        device_lock
---> synchornize_irq()
       wait on interrupt thread == (dead lock)

The fix is to call synchronize_irq
prior to call locked mei_reset function.

Cc: <stable@vger.kernel.org> #4.10+
Fixes: f302bb0de6ac (mei: synchronize irq before initiating a reset)
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-03-16 10:47:53 +09:00
..
Kconfig mei: wd: drop the watchdog code from the core mei driver 2016-02-06 22:11:06 -08:00
Makefile mei: wd: drop the watchdog code from the core mei driver 2016-02-06 22:11:06 -08:00
amthif.c mei: revamp io list cleanup function. 2017-01-31 11:07:43 +01:00
bus-fixup.c mei: bus: enable OS version only for SPT and newer 2017-01-11 07:43:57 +01:00
bus.c sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
client.c sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
client.h mei: revamp io list cleanup function. 2017-01-31 11:07:43 +01:00
debugfs.c Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 13:23:30 -08:00
hbm.c mei: replace callback structures used as list head by list_head 2017-01-31 11:07:43 +01:00
hbm.h mei: me: d0i3: add d0i3 enter/exit state machine 2015-08-03 17:33:55 -07:00
hw-me-regs.h mei: me: add lewisburg device ids 2016-11-29 20:15:30 +01:00
hw-me.c mei: me: generate an interrupt if the hw indicates reset. 2017-02-03 11:49:06 +01:00
hw-me.h mei: fix the back to back interrupt handling 2016-12-06 11:03:22 +01:00
hw-txe-regs.h mei: extract fw status registers 2014-05-03 19:21:22 -04:00
hw-txe.c mei: simplify error handling via devres function. 2017-01-31 11:08:18 +01:00
hw-txe.h mei: simplify error handling via devres function. 2017-01-31 11:08:18 +01:00
hw.h mei: bus: enable OS version only for SPT and newer 2017-01-11 07:43:57 +01:00
init.c mei: fix deadlock on mei reset 2017-03-16 10:47:53 +09:00
interrupt.c mei: replace callback structures used as list head by list_head 2017-01-31 11:07:43 +01:00
main.c sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
mei-trace.c mei: trace pci configuration space io 2016-02-07 13:00:52 -08:00
mei-trace.h mei: drop superfluous closing bracket from write traces 2016-02-07 14:47:20 -08:00
mei_dev.h mei: replace callback structures used as list head by list_head 2017-01-31 11:07:43 +01:00
pci-me.c mei: simplify error handling via devres function. 2017-01-31 11:08:18 +01:00
pci-txe.c mei: simplify error handling via devres function. 2017-01-31 11:08:18 +01:00