]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
parisc: entry.S: fix space adjustment on interruption for 64-bit userspace
authorSven Schnelle <svens@stackframe.org>
Thu, 30 Oct 2025 07:56:05 +0000 (08:56 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:10:01 +0000 (13:10 +0100)
commit0a476ed7bc87a99de992ff86524c23db6f14fe17
tree74c8c9d823024df76ee42b4dc229883d9c0a0153
parent76bbb99a030f27fb548e01c7eeddd2c1f9ca02b8
parisc: entry.S: fix space adjustment on interruption for 64-bit userspace

commit 1aa4524c0c1b54842c4c0a370171d11b12d0709b upstream.

In wide mode, the IASQ contain the upper part of the GVA
during interruption. This needs to be reversed before
the space is used - otherwise it contains parts of IAOQ.
See Page 2-13 "Processing Resources / Interruption Instruction
Address Queues" in the Parisc 2.0 Architecture Manual page 2-13
for an explanation.

The IAOQ/IASQ space_adjust was skipped for other interruptions
than itlb misses. However, the code in handle_interruption()
checks whether iasq[0] contains a valid space. Due to the not
masked out bits this match failed and the process was killed.

Also add space_adjust for IAOQ1/IASQ1 so ptregs contains sane values.

Signed-off-by: Sven Schnelle <svens@stackframe.org>
Cc: stable@vger.kernel.org # v6.0+
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/parisc/kernel/entry.S