Christian Zigotzky had reported that preemptible kernels don't boot on
his FSL Cyrus+ board. The board freezes on running either full/lazy
preemption and has been an issue for a while now (years!).
https://lore.kernel.org/all/b897b0fd-90f2-4215-bcd4-3714e497d773@xenosoft.de/#t (local)
After 7.0, there is only preempt=full/lazy which removed the
preempt=none/voluntary workaround used to mask the issue. There was
challenge is getting the console logs which made the fixes difficult since
one couldn't know where the issue is.
Thanks to Michal for helping in getting the logs. That pointed at few
places where the issue could be. This series is an attempt at fixing
those.
Christian, I haven't taken the tested-by tag since patches have
changed quite a bit.
Please help in *testing* the patches again.
v1->v2:
- Re-order to avoid preempt count dance (Narayana Murty N)
- Do only hard_irq_disable on PPC64 to avoid second warning. On PPC32
use local_irq_disable to acheive the same. (Ritesh Harjani)
v1: https://lore.kernel.org/all/20260928110411.844582-1-sshegde@linux.ibm.com/ (local)
New API ppc_hard_irq_disable could potentially be used in other places.
There is similar pattern of doing both local and hard irq disable and
likely not all callsites need both. But it is a larger effort and due to
my time limit, it will be taken up subsequently.
Shrikanth Hegde (3):
powerpc/irq: Add ppc_hard_irq_disable()
KVM: PPC: BookE: Load FP and Altivec before enabling the interrupts
KVM: PPC: Use ppc_hard_irq_disable before guest entry
arch/powerpc/include/asm/hw_irq.h | 17 +++++++++++++++++
arch/powerpc/kvm/booke.c | 7 +++++--
arch/powerpc/kvm/powerpc.c | 14 +++-----------
3 files changed, 25 insertions(+), 13 deletions(-)
--
2.52.0