| #
334f3f6d |
| 03-Jun-2026 |
Shrikanth Hegde <sshegde@linux.ibm.com> |
powerpc/entry: Disable interrupts before irqentry_exit
Venkat reported a panic on powerpc-next tree where GENERIC_ENTRY has been enabled.
kernel BUG at kernel/sched/core.c:7512! NIP preempt_schedu
powerpc/entry: Disable interrupts before irqentry_exit
Venkat reported a panic on powerpc-next tree where GENERIC_ENTRY has been enabled.
kernel BUG at kernel/sched/core.c:7512! NIP preempt_schedule_irq+0x44/0x118 LR dynamic_irqentry_exit_cond_resched+0x40/0x1a4 Call Trace: dynamic_irqentry_exit_cond_resched+0x40/0x1a4 do_page_fault+0xc0/0x104 data_access_common_virt+0x210/0x220
This happens since __do_page_fault ends up enabling the interrupts and it could take significant time such that need_resched could be set. This leads to schedule call in irqentry_exit leading to the bug.
There are many such irq handlers which enables the interrupts. Fix it by disabling the irq before calling irqentry_exit. The same pattern exists today in interrupt_exit_kernel_prepare.
Fixes: bee25f97ad24 ("powerpc: Enable GENERIC_ENTRY feature") Reported-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> Closes: https://lore.kernel.org/all/7904105b-9dfa-4efd-a5ef-bc0276ed255d@linux.ibm.com/ Signed-off-by: Shrikanth Hegde <sshegde@linux.ibm.com> Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> Reviewed-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260603131054.216235-1-sshegde@linux.ibm.com
show more ...
|
| #
893082ac |
| 27-Apr-2026 |
Mukesh Kumar Chaurasiya <mchauras@linux.ibm.com> |
powerpc: Prepare for IRQ entry exit
Move interrupt entry and exit helper routines from interrupt.h into the PowerPC-specific entry-common.h header as a preparatory step for enabling the generic entr
powerpc: Prepare for IRQ entry exit
Move interrupt entry and exit helper routines from interrupt.h into the PowerPC-specific entry-common.h header as a preparatory step for enabling the generic entry/exit framework.
This consolidation places all PowerPC interrupt entry/exit handling in a single common header, aligning with the generic entry infrastructure. The helpers provide architecture-specific handling for interrupt and NMI entry/exit sequences, including:
- arch_interrupt_enter/exit_prepare() - arch_interrupt_async_enter/exit_prepare() - arch_interrupt_nmi_enter/exit_prepare() - Supporting helpers such as nap_adjust_return(), check_return_regs_valid(), debug register maintenance, and soft mask handling.
The functions are copied verbatim from interrupt.h.Subsequent patches will integrate these routines into the generic entry/exit flow.
No functional change intended.
Signed-off-by: Mukesh Kumar Chaurasiya <mchauras@linux.ibm.com> Tested-by: Samir M <samir@linux.ibm.com> Tested-by: David Gow <davidgow@google.com> Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> Reviewed-by: Shrikanth Hegde <sshegde@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260427122742.210074-7-mkchauras@gmail.com
show more ...
|
| #
02565a78 |
| 27-Apr-2026 |
Mukesh Kumar Chaurasiya <mchauras@linux.ibm.com> |
powerpc: Introduce syscall exit arch functions
Add PowerPC-specific implementations of the generic syscall exit hooks used by the generic entry/exit framework:
- arch_exit_to_user_mode_work_prepar
powerpc: Introduce syscall exit arch functions
Add PowerPC-specific implementations of the generic syscall exit hooks used by the generic entry/exit framework:
- arch_exit_to_user_mode_work_prepare() - arch_exit_to_user_mode_work()
These helpers handle user state restoration when returning from the kernel to userspace, including FPU/VMX/VSX state, transactional memory, KUAP restore, and per-CPU accounting.
Additionally, move check_return_regs_valid() from interrupt.c to interrupt.h so it can be shared by the new entry/exit logic.
No functional change is intended with this patch.
Signed-off-by: Mukesh Kumar Chaurasiya <mchauras@linux.ibm.com> Tested-by: Samir M <samir@linux.ibm.com> Tested-by: David Gow <davidgow@google.com> Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> Reviewed-by: Shrikanth Hegde <sshegde@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260427122742.210074-5-mkchauras@gmail.com
show more ...
|
| #
09a9d3a8 |
| 27-Apr-2026 |
Mukesh Kumar Chaurasiya <mchauras@linux.ibm.com> |
powerpc: introduce arch_enter_from_user_mode
Implement the arch_enter_from_user_mode() hook required by the generic entry/exit framework. This helper prepares the CPU state when entering the kernel
powerpc: introduce arch_enter_from_user_mode
Implement the arch_enter_from_user_mode() hook required by the generic entry/exit framework. This helper prepares the CPU state when entering the kernel from userspace, ensuring correct handling of KUAP/KUEP, transactional memory, and debug register state.
This patch contains no functional changes, it is purely preparatory for enabling the generic syscall and interrupt entry path on PowerPC.
Signed-off-by: Mukesh Kumar Chaurasiya <mchauras@linux.ibm.com> Tested-by: Samir M <samir@linux.ibm.com> Tested-by: David Gow <davidgow@google.com> Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> Reviewed-by: Shrikanth Hegde <sshegde@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260427122742.210074-4-mkchauras@gmail.com
show more ...
|
| #
dec63ea6 |
| 27-Apr-2026 |
Mukesh Kumar Chaurasiya <mchauras@linux.ibm.com> |
powerpc: Prepare to build with generic entry/exit framework
This patch introduces preparatory changes needed to support building PowerPC with the generic entry/exit (irqentry) framework.
The follow
powerpc: Prepare to build with generic entry/exit framework
This patch introduces preparatory changes needed to support building PowerPC with the generic entry/exit (irqentry) framework.
The following infrastructure updates are added: - Add a syscall_work field to struct thread_info to hold SYSCALL_WORK_* flags. - Provide a stub implementation of arch_syscall_is_vdso_sigreturn(), returning false for now. - Introduce on_thread_stack() helper to detect if the current stack pointer lies within the task’s kernel stack.
These additions enable later integration with the generic entry/exit infrastructure while keeping existing PowerPC behavior unchanged.
No functional change is intended in this patch.
Signed-off-by: Mukesh Kumar Chaurasiya <mchauras@linux.ibm.com> Tested-by: Samir M <samir@linux.ibm.com> Tested-by: David Gow <davidgow@google.com> Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> Reviewed-by: Shrikanth Hegde <sshegde@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260427122742.210074-3-mkchauras@gmail.com
show more ...
|