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/[email protected]/#t 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/[email protected]/ 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
