On Fri, Mar 22, 2019 at 04:44:12PM +0100, Arnd Bergmann wrote: > From: Qiao Zhou <qiaozhou@xxxxxxxxxxxx> > > In current die(), the irq is disabled for __die() handle, not > including the possible panic() handling. Since the log in __die() > can take several hundreds ms, new irq might come and interrupt > current die(). > > If the process calling die() holds some critical resource, and some > other process scheduled later also needs it, then it would deadlock. > The first panic will not be executed. > > So here disable irq for the whole flow of die(). > > Signed-off-by: Qiao Zhou <qiaozhou@xxxxxxxxxxxx> > Signed-off-by: Will Deacon <will.deacon@xxxxxxx> > (cherry picked from commit 6f44a0bacb79a03972c83759711832b382b1b8ac) > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > --- > arch/arm64/kernel/traps.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) also added to 4.9.y