[PATCH] powerpc/vdso: Don't use r30 to avoid breaking Go lang
Michael Ellerman
patch-notifications at ellerman.id.au
Sun Aug 1 23:14:00 AEST 2021
On Thu, 29 Jul 2021 23:12:44 +1000, Michael Ellerman wrote:
> The Go runtime uses r30 for some special value called 'g'. It assumes
> that value will remain unchanged even when calling VDSO functions.
> Although r30 is non-volatile across function calls, the callee is free
> to use it, as long as the callee saves the value and restores it before
> returning.
>
> It used to be true by accident that the VDSO didn't use r30, because the
> VDSO was hand-written asm. When we switched to building the VDSO from C
> the compiler started using r30, at least in some builds, leading to
> crashes in Go. eg:
>
> [...]
Applied to powerpc/fixes.
[1/1] powerpc/vdso: Don't use r30 to avoid breaking Go lang
https://git.kernel.org/powerpc/c/a88603f4b92ecef9e2359e40bcb99ad399d85dd7
cheers
More information about the Linuxppc-dev
mailing list