Thread (15 messages) 15 messages, 3 authors, 2025-12-11

[PPC] [e5500] Boot issues after the PowerPC updates 6.19-1

From: Christian Zigotzky <hidden>
Date: 2025-12-09 09:03:24

I bisected today.

1. git clone https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git -b powerpc-6.19-1 a

2. cd a

3. git log

Output:

commit 9b36c7fc5aa5f2c6e6eeb9f312fdfe61b4291c9f (HEAD, tag: powerpc-6.19-1, origin/next-test, origin/next)

...

4. git bisect start

5. git bisect good f850568efe3a7a9ec4df357cfad1f997f0058924

Merge tag 'i2c-for-6.18-rc5'

6. git bisect bad 9b36c7fc5aa5f2c6e6eeb9f312fdfe61b4291c9f

macintosh/via-pmu-backlight: Include <linux/fb.h> and <linux/of.h>

7. git bisect bad

8. git bisect bad

9. git bisect good

10. git bisect bad

11. git bisect good

2997876c4a1a5864baa13d7393c2b68cf5b51183 is the first bad commit
commit 2997876c4a1a5864baa13d7393c2b68cf5b51183
Author: Christophe Leroy [off-list ref]
Date:   Thu Sep 11 14:30:12 2025 +0200

    powerpc/32: Restore clearing of MSR[RI] at interrupt/syscall exit

    Commit 13799748b957 ("powerpc/64: use interrupt restart table to speed
    up return from interrupt") removed the inconditional clearing of
    MSR[RI] when returning from interrupt into kernel. But powerpc/32
    doesn't implement interrupt restart table hence still need MSR[RI]
    to be cleared.

    It could be added back in interrupt_exit_kernel_prepare() but it is
    easier and better to add it back in entry_32.S for following reasons:
    - Writing to MSR must be followed by a synchronising instruction
    - The smaller the non recoverable section is the better it is

    So add a macro called clr_ri and use it in the three places that play
    up with SRR0/SRR1. Use it just before another mtspr for synchronisation
    to avoid having to add an isync.

    Now that's done in entry_32.S, exit_must_hard_disable() can return
    false for non book3s/64, taking into account that BOOKE doesn't have
    MSR_RI.

    Also add back blacklisting syscall_exit_finish for kprobe. This was
    initially added by commit 7cdf44013885 ("powerpc/entry32: Blacklist
    syscall exit points for kprobe.") then lost with
    commit 6f76a01173cc ("powerpc/syscall: implement system call
    entry/exit logic in C for PPC32").

    Fixes: 6f76a01173cc ("powerpc/syscall: implement system call entry/exit logic in C for PPC32")
    Fixes: 13799748b957 ("powerpc/64: use interrupt restart table to speed up return from interrupt")
    Signed-off-by: Christophe Leroy [off-list ref]
    Signed-off-by: Madhavan Srinivasan [off-list ref]
    Link: https://patch.msgid.link/66d0ab070563ad460ed481328ab0887c27f21a2c.1757593807.git.christophe.leroy@csgroup.eu

 arch/powerpc/kernel/entry_32.S  | 18 +++++++++++++++++-
 arch/powerpc/kernel/interrupt.c |  2 +-
 2 files changed, 18 insertions(+), 2 deletions(-)

12. git revert 2997876c4a1a5864baa13d7393c2b68cf5b51183

After reverting the first bad commit, the kernel boots without any problems.


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