]> git.baikalelectronics.ru Git - kernel.git/commit
firmware: arm_sdei: fix possible double-lock on hibernate error path
authorLiguang Zhang <zhangliguang@linux.alibaba.com>
Fri, 21 Feb 2020 16:35:07 +0000 (16:35 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 27 Feb 2020 17:14:14 +0000 (17:14 +0000)
commit63d58474d839bc647aef3c33a27f68252f672550
tree4f8a3fe1c45ec321e2e4a9e5473bbc6725ec4638
parent20a00eb38bf27b5d49000ad3f0d5ff82d4da5ba9
firmware: arm_sdei: fix possible double-lock on hibernate error path

We call sdei_reregister_event() with sdei_list_lock held, if the register
fails we call sdei_event_destroy() which also acquires sdei_list_lock
thus creating A-A deadlock.

Add '_llocked' to sdei_reregister_event(), to indicate the list lock
is held, and add a _llocked variant of sdei_event_destroy().

Fixes: 9a4fbdd54dd6 ("firmware: arm_sdei: Add support for CPU and system power states")
Signed-off-by: Liguang Zhang <zhangliguang@linux.alibaba.com>
[expanded subject, added wrappers instead of duplicating contents]
Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
drivers/firmware/arm_sdei.c