[PATCH] powerpc/64s: prevent recursive replay_soft_interrupts causing superfluous interrupt
Michael Ellerman
patch-notifications at ellerman.id.au
Wed Feb 3 22:46:16 AEDT 2021
On Sat, 23 Jan 2021 16:12:44 +1000, Nicholas Piggin wrote:
> When an asynchronous interrupt calls irq_exit, it checks for softirqs
> that may have been created, and runs them. Running softirqs enables
> local irqs, which can replay pending interrupts causing recursion in
> replay_soft_interrupts. This abridged trace shows how this can occur:
>
> ! NIP replay_soft_interrupts
> LR interrupt_exit_kernel_prepare
> Call Trace:
> interrupt_exit_kernel_prepare (unreliable)
> interrupt_return
> --- interrupt: ea0 at __rb_reserve_next
> NIP __rb_reserve_next
> LR __rb_reserve_next
> Call Trace:
> ring_buffer_lock_reserve
> trace_function
> function_trace_call
> ftrace_call
> __do_softirq
> irq_exit
> timer_interrupt
> ! replay_soft_interrupts
> interrupt_exit_kernel_prepare
> interrupt_return
> --- interrupt: ea0 at arch_local_irq_restore
>
> [...]
Applied to powerpc/fixes.
[1/1] powerpc/64s: prevent recursive replay_soft_interrupts causing superfluous interrupt
https://git.kernel.org/powerpc/c/4025c784c573cab7e3f84746cc82b8033923ec62
cheers
More information about the Linuxppc-dev
mailing list