powernv: Fix OPAL tracepoint code
authorAnton Blanchard <anton@samba.org>
Tue, 6 Jan 2015 10:12:08 +0000 (21:12 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 12 Jan 2015 05:40:02 +0000 (16:40 +1100)
Patch c49f63530bb6 ("powernv: Add OPAL tracepoints") has a spurious
store to the stack:

ld      r12,opal_tracepoint_refcount@toc(r2);           \
std     r12,32(r1);                                     \

The store was originally used to save the current tracepoint status
so the entry and the exit tracepoints were always balanced. In the
end I just created a separate path when tracepoints are enabled.

The offset on the stack used for this store is not valid for ABIv2
and it causes strange issues. I noticed it because OPAL console input
was broken.

Fixes: c49f63530bb6 ("powernv: Add OPAL tracepoints")
Cc: <stable@vger.kernel.org> # v3.17+
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/powernv/opal-wrappers.S

index 54eca8b..0509bca 100644 (file)
@@ -40,7 +40,6 @@ BEGIN_FTR_SECTION;                                            \
        b       1f;                                             \
 END_FTR_SECTION(0, 1);                                         \
        ld      r12,opal_tracepoint_refcount@toc(r2);           \
-       std     r12,32(r1);                                     \
        cmpdi   r12,0;                                          \
        bne-    LABEL;                                          \
 1: