]> git.itanic.dy.fi Git - linux-stable/commitdiff
s390: clear pt_regs::flags on irq entry
authorSven Schnelle <svens@linux.ibm.com>
Fri, 11 Jun 2021 14:08:18 +0000 (16:08 +0200)
committerSasha Levin <sashal@kernel.org>
Wed, 30 Jun 2021 12:47:03 +0000 (08:47 -0400)
commit ca1f4d702d534387aa1f16379edb3b03cdb6ceda upstream.

The current irq entry code doesn't initialize pt_regs::flags. On exit to
user mode arch_do_signal_or_restart() tests whether PIF_SYSCALL is set,
which might yield wrong results.

Fix this by clearing pt_regs::flags in the entry.S irq handler
code.

Reported-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Fixes: 56e62a737028 ("s390: convert to generic entry")
Cc: <stable@vger.kernel.org> # 5.12
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/s390/kernel/entry.S

index 9cc71ca9a88f975aac3be650901e8cef325d7b0d..e84f495e7eb2921a0332486938b71eb7c310a7e8 100644 (file)
@@ -418,6 +418,7 @@ ENTRY(\name)
        xgr     %r6,%r6
        xgr     %r7,%r7
        xgr     %r10,%r10
+       xc      __PT_FLAGS(8,%r11),__PT_FLAGS(%r11)
        mvc     __PT_R8(64,%r11),__LC_SAVE_AREA_ASYNC
        stmg    %r8,%r9,__PT_PSW(%r11)
        tm      %r8,0x0001              # coming from user space?