]> git.baikalelectronics.ru Git - kernel.git/commit
kernel: kexec: remove the lock operation of system_transition_mutex
authorBaoquan He <bhe@redhat.com>
Fri, 22 Jan 2021 07:42:14 +0000 (15:42 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 25 Jan 2021 17:40:37 +0000 (18:40 +0100)
commit4b578fb13edb583a5c3124748ad5da8b55033b84
tree1f3c95e3e56a038531ee12741605a45717d624b7
parentd3fdd1bcd9c220739ee087fbcd1863a2f936b6a3
kernel: kexec: remove the lock operation of system_transition_mutex

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.

Fixes: cb9f668b48db ("PM / reboot: Eliminate race between reboot and suspend")
Signed-off-by: Baoquan He <bhe@redhat.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Pingfan Liu <kernelfans@gmail.com>
Cc: 4.19+ <stable@vger.kernel.org> # 4.19+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
kernel/kexec_core.c