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

From: Abdul Haleem
Date: Fri May 05 2017 - 00:12:03 EST


On Thu, 2017-05-04 at 20:41 +1000, Nicholas Piggin wrote:
> On Thu, 04 May 2017 14:54:19 +0530
> Abdul Haleem <abdhalee@xxxxxxxxxxxxxxxxxx> wrote:
>
> > 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 <npiggin@xxxxxxxxx>
> > Date: Wed Apr 19 23:05:47 2017 +1000
> >
> > powerpc/64s: Fix POWER9 machine check handler from stop state
> >
> > Reviewed-by: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>
> > Reviewed-by: Mahesh J Salgaonkar <mahesh@xxxxxxxxxxxxxxxxxx>
> > Signed-off-by: Nicholas Piggin <npiggin@xxxxxxxxx>
> > Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> >
> > 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@xxxxxxxxx>
> ---
> 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 <abdhalee@xxxxxxxxxxxxxxxxxx>

--
Regard's

Abdul Haleem
IBM Linux Technology Centre