powerpc: Convert cmp to cmpd in idle enter sequence

Message ID 20161216035801.11233-1-joel@jms.id.au
State New
Headers show

Commit Message

Joel Stanley Dec. 16, 2016, 3:58 a.m.
From: Segher Boessenkool <segher@kernel.crashing.org>


Commit 80f23935cadb1c654e81951f5a8b7ceae0acc1b4 upstream, backported to
4.4. This patch is required to build the powerpc kernel with modern
toolchains. Please apply to 4.4.

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")
Cc: stable@vger.kernel.org # v3.0
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>

---
 arch/powerpc/kernel/idle_power7.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Greg KH Jan. 6, 2017, 3:15 p.m. | #1
On Fri, Dec 16, 2016 at 02:28:01PM +1030, Joel Stanley wrote:
> From: Segher Boessenkool <segher@kernel.crashing.org>

> 

> Commit 80f23935cadb1c654e81951f5a8b7ceae0acc1b4 upstream, backported to

> 4.4. This patch is required to build the powerpc kernel with modern

> toolchains. Please apply to 4.4.


Now queued up, thanks.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S
index 112ccf497562..73f638789a38 100644
--- a/arch/powerpc/kernel/idle_power7.S
+++ b/arch/powerpc/kernel/idle_power7.S
@@ -44,7 +44,7 @@ 
 	std	r0,0(r1);					\
 	ptesync;						\
 	ld	r0,0(r1);					\
-1:	cmp	cr0,r0,r0;					\
+1:	cmpd	cr0,r0,r0;					\
 	bne	1b;						\
 	IDLE_INST;						\
 	b	.