]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
powerpc: Convert cmp to cmpd in idle enter sequence
authorSegher Boessenkool <segher@kernel.crashing.org>
Thu, 6 Oct 2016 13:42:19 +0000 (13:42 +0000)
committerJiri Slaby <jslaby@suse.cz>
Thu, 26 Jan 2017 16:39:14 +0000 (17:39 +0100)
commit 80f23935cadb1c654e81951f5a8b7ceae0acc1b4 upstream.

PowerPC's "cmp" instruction has four operands. Normally people write
"cmpw" or "cmpd" for the second cmp operand 0 or 1. But, frequently
people forget, and write "cmp" with just three operands.

With older binutils this is silently accepted as if this was "cmpw",
while often "cmpd" is wanted. With newer binutils GAS will complain
about this for 64-bit code. For 32-bit code it still silently assumes
"cmpw" is what is meant.

In this instance the code comes directly from ISA v2.07, including the
cmp, but cmpd is correct. Backport to stable so that new toolchains can
build old kernels.

Fixes: 948cf67c4726 ("powerpc: Add NAP mode support on Power7 in HV mode")
Reviewed-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
arch/powerpc/kernel/idle_power7.S

index df930727f73b451c183177eb0d9606d46877998a..6ff0f4ef08beb3f0dc62d4bcb02d33715ec495cd 100644 (file)
@@ -110,7 +110,7 @@ power7_enter_nap_mode:
        std     r0,0(r1)
        ptesync
        ld      r0,0(r1)
-1:     cmp     cr0,r0,r0
+1:     cmpd    cr0,r0,r0
        bne     1b
        PPC_NAP
        b       .