From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53715) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1akuaV-0000sG-4T for qemu-devel@nongnu.org; Tue, 29 Mar 2016 10:25:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1akuaQ-0001RW-3y for qemu-devel@nongnu.org; Tue, 29 Mar 2016 10:25:43 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:50086) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1akuaP-0001RD-GE for qemu-devel@nongnu.org; Tue, 29 Mar 2016 10:25:37 -0400 References: <1459260105-5536-1-git-send-email-chengang@emindsoft.com.cn> From: Laurent Vivier Message-ID: <56FA9049.3090803@vivier.eu> Date: Tue, 29 Mar 2016 16:25:13 +0200 MIME-Version: 1.0 In-Reply-To: <1459260105-5536-1-git-send-email-chengang@emindsoft.com.cn> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH] linux-user/signal.c: Use frame->retcode instead of frame address for alpha target restorer List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: chengang@emindsoft.com.cn, rth@twiddle.net, peter.maydell@linaro.org, cmetcalf@ezchip.com Cc: walt@tilera.com, riku.voipio@iki.fi, qemu-devel@nongnu.org, Chen Gang Le 29/03/2016 16:01, chengang@emindsoft.com.cn a écrit : > From: Chen Gang > > The restorer needs the return code address which is frame->retcode, not > frame itself. > > Signed-off-by: Chen Gang > --- > linux-user/signal.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/linux-user/signal.c b/linux-user/signal.c > index e487f9e..4157154 100644 > --- a/linux-user/signal.c > +++ b/linux-user/signal.c > @@ -5455,7 +5455,7 @@ static void setup_rt_frame(int sig, struct target_sigaction *ka, > &frame->retcode[1]); > __put_user(INSN_CALLSYS, &frame->retcode[2]); > /* imb(); */ > - r26 = frame_addr; > + r26 = frame_addr + offsetof(struct target_rt_sigframe, retcode); > } > > if (err) { > If you change setup_rt_frame(), you must update setup_frame() too. It seems correct. Richard, as you have written the original code, could you check this is correct? Laurent