[PATCH v2] powerpc/64/signal: balance return predictor stack in signal trampoline
Michael Ellerman
patch-notifications at ellerman.id.au
Thu Jul 16 22:56:11 AEST 2020
On Mon, 11 May 2020 20:19:52 +1000, Nicholas Piggin wrote:
> Returning from an interrupt or syscall to a signal handler currently
> begins execution directly at the handler's entry point, with LR set to
> the address of the sigreturn trampoline. When the signal handler
> function returns, it runs the trampoline. It looks like this:
>
> # interrupt at user address xyz
> # kernel stuff... signal is raised
> rfid
> # void handler(int sig)
> addis 2,12,.TOC.-.LCF0 at ha
> addi 2,2,.TOC.-.LCF0 at l
> mflr 0
> std 0,16(1)
> stdu 1,-96(1)
> # handler stuff
> ld 0,16(1)
> mtlr 0
> blr
> # __kernel_sigtramp_rt64
> addi r1,r1,__SIGNAL_FRAMESIZE
> li r0,__NR_rt_sigreturn
> sc
> # kernel executes rt_sigreturn
> rfid
> # back to user address xyz
>
> [...]
Applied to powerpc/next.
[1/1] powerpc/64/signal: Balance return predictor stack in signal trampoline
https://git.kernel.org/powerpc/c/0138ba5783ae0dcc799ad401a1e8ac8333790df9
cheers
More information about the Linuxppc-dev
mailing list