Skip to contentSkip to conversation

Patch "powerpc/64e: Convert cmpi to cmpwi in head_64.S" has been added to the 4.8-stable tree

PATCH [email protected] 1 participant 1 message Jan 6, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

powerpc/64e: Convert cmpi to cmpwi in head_64.S

to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:

     powerpc-64e-convert-cmpi-to-cmpwi-in-head_64.s.patch

and it can be found in the queue-4.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From f87f253bac3ce4a4eb2a60a1ae604d74e65f9042 Mon Sep 17 00:00:00 2001

From: Nicholas Piggin <[email protected]>
Date: Thu, 24 Nov 2016 00:02:07 +1100
Subject: powerpc/64e: Convert cmpi to cmpwi in head_64.S

From: Nicholas Piggin <[email protected]>

commit f87f253bac3ce4a4eb2a60a1ae604d74e65f9042 upstream.

Quoted 1 line

From 80f23935cadb ("powerpc: Convert cmp to cmpd in idle enter sequence"):

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 case, cmpwi is called for, so this is just a build fix for new toolchains.

---
 arch/powerpc/kernel/head_64.S |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
arch/powerpc/kernel/head_64.S +4 -4
@@ -201,9 +201,9 @@ booting_thread_hwid:
  */
 _GLOBAL(book3e_start_thread)
 	LOAD_REG_IMMEDIATE(r5, MSR_KERNEL)
-	cmpi	0, r3, 0
+	cmpwi	r3, 0
 	beq	10f
-	cmpi	0, r3, 1
+	cmpwi	r3, 1
 	beq	11f
 	/* If the thread id is invalid, just exit. */
 	b	13f
@@ -228,9 +228,9 @@ _GLOBAL(book3e_start_thread)
  * r3 = the thread physical id
  */
 _GLOBAL(book3e_stop_thread)
-	cmpi	0, r3, 0
+	cmpwi	r3, 0
 	beq	10f
-	cmpi	0, r3, 1
+	cmpwi	r3, 1
 	beq	10f
 	/* If the thread id is invalid, just exit. */
 	b	13f

Patches currently in stable-queue which might be from [email protected] are

queue-4.8/powerpc-64e-convert-cmpi-to-cmpwi-in-head_64.s.patch