Commit 1aa4524
parisc: entry.S: fix space adjustment on interruption for 64-bit userspace
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>1 parent 5fb1d3c commit 1aa4524
1 file changed
Lines changed: 8 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1059 | 1059 | | |
1060 | 1060 | | |
1061 | 1061 | | |
1062 | | - | |
1063 | | - | |
1064 | 1062 | | |
1065 | 1063 | | |
1066 | 1064 | | |
| |||
1069 | 1067 | | |
1070 | 1068 | | |
1071 | 1069 | | |
1072 | | - | |
| 1070 | + | |
1073 | 1071 | | |
1074 | 1072 | | |
1075 | 1073 | | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
1076 | 1081 | | |
1077 | 1082 | | |
1078 | 1083 | | |
| |||
0 commit comments