Thread (7 messages) flat view 7 messages, 4 authors, 2017-05-15

Re: [linux-next][bisected 1945bc45] build brakes for PowerPC BE configuration on LPAR

From: Nicholas Piggin <npiggin@gmail.com>
Date: 2017-05-05 06:40:30
Also in: lkml

On Fri, 05 May 2017 09:40:10 +0530
Abdul Haleem [off-list ref] wrote:
On Thu, 2017-05-04 at 20:41 +1000, Nicholas Piggin wrote:
quoted
On Thu, 04 May 2017 14:54:19 +0530
Abdul Haleem [off-list ref] wrote:
  
quoted
Hi,

linux-next build fails on BE config with next-20170424 onwards

the patch https://lkml.org/lkml/2017/4/20/994  fixes a similar issue
with kvm guest build failure.

arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
arch/powerpc/kernel/exceptions-64s.S:395: Error: operand out of range
(0xffffffffffff8280 is not between 0x0000000000000000 and
0x000000000000ffff)
make[1]: *** [arch/powerpc/kernel/head_64.o] Error 1

Bisection resulted with the below bad commit.

commit 1945bc4549e5cb1f9aa873ec29191aa54dc851d
Author: Nicholas Piggin [off-list ref]
Date:   Wed Apr 19 23:05:47 2017 +1000

    powerpc/64s: Fix POWER9 machine check handler from stop state

    Reviewed-by: Gautham R. Shenoy [off-list ref]
    Reviewed-by: Mahesh J Salgaonkar [off-list ref]
    Signed-off-by: Nicholas Piggin [off-list ref]
    Signed-off-by: Michael Ellerman [off-list ref]

 arch/powerpc/include/asm/reg.h       |  1 +
 arch/powerpc/kernel/exceptions-64s.S | 79 ++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
 arch/powerpc/kernel/idle_book3s.S    | 25 +++++++++++++++++++++++++
 3 files changed, 70 insertions(+), 35 deletions(-)

the BE configuration file is attached.
  
Thanks for the report. I wouldn't reproduce it with this config. I
suspect the following patch should fix it, can you test?

powerpc/64s: Fix unnecessary machine check handler relocation branch

Similarly to 2563a70c3b ("powerpc/64s: Remove unnecessary relocation
branch from idle handler"), the machine check handler has a BRANCH_TO
from relocated to relocated code, which is unnecessary.

It has also caused build errors with some toolchains:

  arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
  arch/powerpc/kernel/exceptions-64s.S:395: Error: operand out of range
  (0xffffffffffff8280 is not between 0x0000000000000000 and
  0x000000000000ffff)

Fixes: 1945bc4549 ("powerpc/64s: Fix POWER9 machine check handler from stop state")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
 arch/powerpc/kernel/exceptions-64s.S | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index 3840a7700285..ef72065f684c 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -391,9 +391,7 @@ EXC_COMMON_BEGIN(machine_check_handle_early)
 	 */
 	BEGIN_FTR_SECTION
 	rlwinm.	r11,r12,47-31,30,31
-	beq-	4f
-	BRANCH_TO_COMMON(r10, machine_check_idle_common)
-4:
+	bne	machine_check_idle_common
 	END_FTR_SECTION_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206)
 #endif
  
Machine Builds and boots fine, Thanks for the patch :-)

Reported-and-tested-by : Abdul Haleem [off-list ref]
Okay, thanks for testing. I've tested the MCE-from-idle wakeup path in
the simulator with this patch and that still seems to work fine.

Thanks,
Nick
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help