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