powerpc/pseries: Fix hcall tracepoints with JUMP_LABEL=n
authorNicholas Piggin <npiggin@gmail.com>
Tue, 9 May 2023 09:15:59 +0000 (19:15 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 24 Aug 2023 22:39:30 +0000 (08:39 +1000)
With JUMP_LABEL=n, hcall_tracepoint_refcount's address is being tested
instead of its value. This results in the tracing slowpath always being
taken unnecessarily.

Fixes: 9a10ccb29c0a2 ("powerpc/pseries: move hcall_tracepoint_refcount out of .toc")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230509091600.70994-1-npiggin@gmail.com
arch/powerpc/platforms/pseries/hvCall.S

index 35254ac..ca0674b 100644 (file)
@@ -91,6 +91,7 @@ BEGIN_FTR_SECTION;                                            \
        b       1f;                                             \
 END_FTR_SECTION(0, 1);                                         \
        LOAD_REG_ADDR(r12, hcall_tracepoint_refcount) ;         \
+       ld      r12,0(r12);                                     \
        std     r12,32(r1);                                     \
        cmpdi   r12,0;                                          \
        bne-    LABEL;                                          \