Message ID | 1465295650-8523-1-git-send-email-stefan.bader@canonical.com |
---|---|
State | New |
Headers | show |
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@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@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@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@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
On Tue, 2016-06-07 at 12:34 +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. The change log is a little fuzzy on the exact details, but I won't bore you by explaining them. The fix looks good to me. cheers
Seems quite testable.
Applied to trusty (added "UBUNTU: SAUCE:"). -Kamal
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