On 13 April 2018 at 05:46, Richard Henderson <richard.hender...@linaro.org> wrote: > On 04/12/2018 04:02 AM, Peter Maydell wrote: >> AArch64 stack frames include a 'frame record' which holds a pointer >> to the next frame record in the chain and the LR on entry to the >> function. The procedure calling standard doesn't mandate where >> exactly this frame record is in the stack frame, but for signal >> frames the kernel puts it right at the top. We used to put it >> there too, but in commit 7f0f4208b3a96f22 we accidentally put >> the "enlarge to the 4K reserved space minimum" check after the >> "allow for the frame record" code, rather than before it, with >> the effect that the frame record would be inside the reserved >> space and immediately after the last used part of it. >> >> Move the frame record back out of the reserved space to where >> we used to put it. >> >> This bug shouldn't break any sensible guest code, but test >> programs that deliberately look at the internal details >> of the signal frame layout will not find what they are >> expecting to see. >> >> Fixes: 7f0f4208b3a96f22 >> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> >> I'm marking this as for-2.12 on the basis that it puts our frame >> layout back to exactly what 2.11 had, and so seems safest. >> No sensible guest code should really care, though, so this is >> in the "only if we're doing an rc4" bucket; but I think that the >> softfloat fixes deserve an rc4 anyway.
We needed an rc4, so I've applied this to master. -- PMM