]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
mei: fix deadlock on mei reset
authorTomas Winkler <tomas.winkler@intel.com>
Sun, 5 Mar 2017 19:40:41 +0000 (21:40 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 Mar 2017 01:47:53 +0000 (10:47 +0900)
commita733ded50b6ea846200073e7381a302df71e13b3
treec607f1208e4cd54539e099d5dab4772e56e1beb5
parent603980cecc71564e1c6289cd4d0704f11788dc3a
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>
drivers/misc/mei/init.c