Thread (3 messages) 3 messages, 3 authors, 2021-01-26

Re: [PATCH] kernel/kexec: remove the lock operation of system_transition_mutex

From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2021-01-25 17:55:29
Also in: kexec

On Mon, Jan 25, 2021 at 10:05 AM Pingfan Liu [off-list ref] wrote:
On Fri, Jan 22, 2021 at 3:42 PM Baoquan He [off-list ref] wrote:
quoted
Function kernel_kexec() is called with lock system_transition_mutex held
in reboot system call. While inside kernel_kexec(), it will acquire
system_transition_mutex agin. This will lead to dead lock.

The dead lock should be easily triggered, it hasn't caused any failure
report just because the feature 'kexec jump' is almost not used by anyone
as far as I know. An inquiry can be made about who is using 'kexec jump'
and where it's used. Before that, let's simply remove the lock operation
inside CONFIG_KEXEC_JUMP ifdeffery scope.

Signed-off-by: Baoquan He <redacted>
Reported-by: Dan Carpenter <redacted>
Reviewed-by: Pingfan Liu <redacted>
---
 kernel/kexec_core.c | 2 --
 1 file changed, 2 deletions(-)
diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c
index 80905e5aa8ae..a0b6780740c8 100644
--- a/kernel/kexec_core.c
+++ b/kernel/kexec_core.c
@@ -1134,7 +1134,6 @@ int kernel_kexec(void)

 #ifdef CONFIG_KEXEC_JUMP
        if (kexec_image->preserve_context) {
-               lock_system_sleep();
                pm_prepare_console();
                error = freeze_processes();
                if (error) {
@@ -1197,7 +1196,6 @@ int kernel_kexec(void)
                thaw_processes();
  Restore_console:
                pm_restore_console();
-               unlock_system_sleep();
        }
 #endif

--
2.17.2
Reviewed-by: Pingfan Liu <redacted>
Applied as 5.11-rc material, thanks!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help