Patch "mei: fix deadlock on mei reset" has been added to the 4.10-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
mei: fix deadlock on mei reset
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mei-fix-deadlock-on-mei-reset.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
a733ded50b6ea846200073e7381a302df71e13b3Mon Sep 17 00:00:00 2001
From: Tomas Winkler <[email protected]>
Date: Sun, 5 Mar 2017 21:40:41 +0200
Subject: mei: fix deadlock on mei reset
From: Tomas Winkler <[email protected]>
commit a733ded50b6ea846200073e7381a302df71e13b3 upstream.
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.
--- drivers/misc/mei/init.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
drivers/misc/mei/init.c +6 -2
@@ -124,8 +124,6 @@ int mei_reset(struct mei_device *dev)mei_clear_interrupts (dev); -mei_synchronize_irq (dev); -/* we're already in reset, cancel the init timer * if the reset was called due the hbm protocol error * we need to call it before hw start
@@ -304,6 +302,9 @@ static void mei_reset_work(struct work_s container_of(work, struct mei_device, reset_work);int ret; +mei_clear_interrupts (dev); +mei_synchronize_irq (dev); +mutex_lock (&dev->device_lock); ret =mei_reset (dev);
@@ -328,6 +329,9 @@ void mei_stop(struct mei_device *dev)mei_cancel_work (dev); +mei_clear_interrupts (dev); +mei_synchronize_irq (dev); +mutex_lock (&dev->device_lock); dev->dev_state =MEI_DEV_POWER_DOWN ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/mei-fix-deadlock-on-mei-reset.patch queue-4.10/mei-don-t-wait-for-os-version-message-reply.patch