blob: 41888e34a396e29680901d03a00f318d7b6aacbd [file] [log] [blame]
Joel Stanley8ac6ef02016-12-14 15:12:16 +10301From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2From: Segher Boessenkool <segher@kernel.crashing.org>
3Date: Thu, 6 Oct 2016 13:42:19 +0000
4Subject: [PATCH 11/12] powerpc: Convert cmp to cmpd in idle enter sequence
5
6PowerPC's "cmp" instruction has four operands. Normally people write
7"cmpw" or "cmpd" for the second cmp operand 0 or 1. But, frequently
8people forget, and write "cmp" with just three operands.
9
10With older binutils this is silently accepted as if this was "cmpw",
11while often "cmpd" is wanted. With newer binutils GAS will complain
12about this for 64-bit code. For 32-bit code it still silently assumes
13"cmpw" is what is meant.
14
15In this instance the code comes directly from ISA v2.07, including the
16cmp, but cmpd is correct. Backport to stable so that new toolchains can
17build old kernels.
18
19Fixes: 948cf67c4726 ("powerpc: Add NAP mode support on Power7 in HV mode")
20Cc: stable@vger.kernel.org # v3.0
21Reviewed-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
22Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
23Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
24(cherry picked from commit 80f23935cadb1c654e81951f5a8b7ceae0acc1b4)
25Signed-off-by: Joel Stanley <joel@jms.id.au>
26---
27 arch/powerpc/kernel/idle_power7.S | 2 +-
28 1 file changed, 1 insertion(+), 1 deletion(-)
29
30diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S
31index 112ccf497562..73f638789a38 100644
32--- a/arch/powerpc/kernel/idle_power7.S
33+++ b/arch/powerpc/kernel/idle_power7.S
34@@ -44,7 +44,7 @@
35 std r0,0(r1); \
36 ptesync; \
37 ld r0,0(r1); \
38-1: cmp cr0,r0,r0; \
39+1: cmpd cr0,r0,r0; \
40 bne 1b; \
41 IDLE_INST; \
42 b .
43--
442.11.0
45