[PATCH] powerpc/64s: Fix hash fault to use TRAP accessor

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE1985d LANDED

Landed in mainline as 1479e3d3b755 on 2021-03-29.

2 messages, 2 authors, 2021-03-31 · open the first message on its own page

[PATCH] powerpc/64s: Fix hash fault to use TRAP accessor

From: Nicholas Piggin <npiggin@gmail.com>
Date: 2021-03-16 10:52:40

Hash faults use the trap vector to decide whether this is an
instruction or data fault. This should use the TRAP accessor
rather than open access regs->trap.

This won't cause a problem at the moment because 64s only uses
trap flags for system call interrupts (the norestart flag), but
that could change if any other trap flags get used in future.

Fixes: a4922f5442e7e ("powerpc/64s: move the hash fault handling logic to C")
Suggested-by: Christophe Leroy <redacted>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
 arch/powerpc/mm/book3s64/hash_utils.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/mm/book3s64/hash_utils.c b/arch/powerpc/mm/book3s64/hash_utils.c
index 1c4b0a29f0f5..977da0dce80c 100644
--- a/arch/powerpc/mm/book3s64/hash_utils.c
+++ b/arch/powerpc/mm/book3s64/hash_utils.c
@@ -1545,10 +1545,10 @@ DEFINE_INTERRUPT_HANDLER_RET(__do_hash_fault)
 	if (user_mode(regs) || (region_id == USER_REGION_ID))
 		access &= ~_PAGE_PRIVILEGED;
 
-	if (regs->trap == 0x400)
+	if (TRAP(regs) == 0x400)
 		access |= _PAGE_EXEC;
 
-	err = hash_page_mm(mm, ea, access, regs->trap, flags);
+	err = hash_page_mm(mm, ea, access, TRAP(regs), flags);
 	if (unlikely(err < 0)) {
 		// failed to instert a hash PTE due to an hypervisor error
 		if (user_mode(regs)) {
-- 
2.23.0

Re: [PATCH] powerpc/64s: Fix hash fault to use TRAP accessor

From: Michael Ellerman <hidden>
Date: 2021-03-31 01:21:37

On Tue, 16 Mar 2021 20:52:05 +1000, Nicholas Piggin wrote:
Hash faults use the trap vector to decide whether this is an
instruction or data fault. This should use the TRAP accessor
rather than open access regs->trap.

This won't cause a problem at the moment because 64s only uses
trap flags for system call interrupts (the norestart flag), but
that could change if any other trap flags get used in future.
Applied to powerpc/next.

[1/1] powerpc/64s: Fix hash fault to use TRAP accessor
      https://git.kernel.org/powerpc/c/1479e3d3b7559133b0a107772b5841e9c2cad450

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help