ACK: [Trusty SRU] Fix boot regression on ppc64el

Chris J Arges chris.j.arges at canonical.com
Tue Jun 7 11:46:55 UTC 2016


Analysis makes sense, and based on those patches this seems like right way
to fix it.
--chris


On Tue, Jun 07, 2016 at 12:34:10PM +0200, Stefan Bader wrote:
> Trusty kernels fail to boot since 3.13.0-46 which we unfortunately
> missed to notice. The following patch was tested on modoc and with
> it applied I could boot a recent 3.13 again.
> 
> -Stefan
> 
> 
> From b8df8969362843787d357b09d49de38111790fb2 Mon Sep 17 00:00:00 2001
> From: Stefan Bader <stefan.bader at canonical.com>
> Date: Mon, 6 Jun 2016 18:22:40 +0200
> Subject: [PATCH] powerpc/powernv: Fix incomplete backport of 8117ac6
> 
> The backport of commit 8117ac6 upstream
>  powerpc/powernv: Switch off MMU before entering nap/sleep/rvwinkle mode
> missed some subtle change in the way a global label was declared which
> will load the address of a symbol table instead of the function address
> into a register and then uses that as a jump target.
> 
> However this requires one more adaptions due to the fact that the
> _GLOBAL macro depending on config expands into a special combination
> of symbol name and dot symbol name. And the dot symbol name is referred
> to from arch/powerpc/kernel/exceptions-64s.S.
> 
> Many of those dot symbol references where removed (likely before 8117ac6)
> in commit b1576fec7f4dd4657694fefc97fda4cf28ec68e9
>   Author: Anton Blanchard <anton at samba.org>
>   powerpc: No need to use dot symbols when branching to a function
> 
> So I remove the dot reference for that one instance as removing
> the _GLOBAL macro also removes the implicit dot name and only
> leaves a simple jump label.
> 
> BugLink: http://bugs.launchpad.net/bugs/1589910
> 
> Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
> ---
>  arch/powerpc/kernel/exceptions-64s.S | 2 +-
>  arch/powerpc/kernel/idle_power7.S    | 3 ++-
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
> index 4c34c3c..a113575 100644
> --- a/arch/powerpc/kernel/exceptions-64s.S
> +++ b/arch/powerpc/kernel/exceptions-64s.S
> @@ -1414,7 +1414,7 @@ machine_check_handle_early:
>  	MACHINE_CHECK_HANDLER_WINDUP
>  	GET_PACA(r13)
>  	ld	r1,PACAR1(r13)
> -	b	.power7_enter_nap_mode
> +	b	power7_enter_nap_mode
>  4:
>  #endif
>  	/*
> diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S
> index e435445..6140e71 100644
> --- a/arch/powerpc/kernel/idle_power7.S
> +++ b/arch/powerpc/kernel/idle_power7.S
> @@ -99,7 +99,8 @@ _GLOBAL(power7_nap)
>  	mtspr   SPRN_SRR1, r5
>  	rfid
>  
> -_GLOBAL(power7_enter_nap_mode)
> +	.globl	power7_enter_nap_mode
> +power7_enter_nap_mode:
>  #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
>  	/* Tell KVM we're napping */
>  	li	r4,KVM_HWTHREAD_IN_NAP
> -- 
> 1.9.1
> 
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team




More information about the kernel-team mailing list