* Greg Kroah-Hartman <gre...@linuxfoundation.org> [2017-01-06 22:44:39]:

> 4.4-stable review patch.  If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: Segher Boessenkool <seg...@kernel.crashing.org>
> 
> 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 <sva...@linux.vnet.ibm.com>
> Signed-off-by: Segher Boessenkool <seg...@kernel.crashing.org>
> Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
> Signed-off-by: Joel Stanley <j...@jms.id.au>
> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

Acked-by: Vaidyanathan Srinivasan <sva...@linux.vnet.ibm.com>

The change from cmp to cmpd is correct. This code will execute
in 64-bit mode only and fix applies to stable as described above.

> 
> 
> ---
>  arch/powerpc/kernel/idle_power7.S |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> --- 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       .
> 
> 

Reply via email to