From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1944) id 906A43852C5C; Wed, 23 Nov 2022 14:38:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 906A43852C5C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1669214330; bh=Vr7iezvHcyL20Wb3NsvfadtQqXB7kkl6KV7G35KS2Dw=; h=From:To:Subject:Date:From; b=jWuA9qKjPqYcz1/Ai4vKyFiReDQ0g94XsinBD3q4UegKnZGs+zH+VeQPiOHutrmDn A4JlGTFo8tHoumF+bumZQAg6NFj4xVHIzuSE8voDP9GXuHD/qsmQwE2F7aFbTfcDYX HvUK1smWah1DTPVVfD3cfGv8nkEgPEV1mA6zbftw= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Szabolcs Nagy To: glibc-cvs@sourceware.org Subject: [glibc/arm/morello/main] aarch64: Fix the extension header write in getcontext and swapcontext X-Act-Checkin: glibc X-Git-Author: Szabolcs Nagy X-Git-Refname: refs/heads/arm/morello/main X-Git-Oldrev: b8020168b5de9b2d2917ed6e1f5d152d51865769 X-Git-Newrev: c505926c319b9ab6e849664968cb722c35acaf88 Message-Id: <20221123143850.906A43852C5C@sourceware.org> Date: Wed, 23 Nov 2022 14:38:50 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c505926c319b9ab6e849664968cb722c35acaf88 commit c505926c319b9ab6e849664968cb722c35acaf88 Author: Szabolcs Nagy Date: Fri Jul 29 08:00:06 2022 +0100 aarch64: Fix the extension header write in getcontext and swapcontext The extension header is two 32bit words and in the last header both should be 0. There is plenty space in the __reserved area, but it's better not to write more than we mean to. Diff: --- sysdeps/unix/sysv/linux/aarch64/getcontext.S | 4 ++-- sysdeps/unix/sysv/linux/aarch64/swapcontext.S | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S index 15fbd2d1a0..3109cbd99a 100644 --- a/sysdeps/unix/sysv/linux/aarch64/getcontext.S +++ b/sysdeps/unix/sysv/linux/aarch64/getcontext.S @@ -86,8 +86,8 @@ ENTRY(__getcontext) /* Write the termination context extension header. */ add x2, x2, #FPSIMD_CONTEXT_SIZE - str xzr, [x2, #oHEAD + oMAGIC] - str xzr, [x2, #oHEAD + oSIZE] + str wzr, [x2, #oHEAD + oMAGIC] + str wzr, [x2, #oHEAD + oSIZE] /* Grab the signal mask */ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */ diff --git a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S index 1ee2e40272..e3ec9da35d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S +++ b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S @@ -75,8 +75,8 @@ ENTRY(__swapcontext) /* Write the termination context extension header. */ add x2, x2, #FPSIMD_CONTEXT_SIZE - str xzr, [x2, #oHEAD + oMAGIC] - str xzr, [x2, #oHEAD + oSIZE] + str wzr, [x2, #oHEAD + oMAGIC] + str wzr, [x2, #oHEAD + oSIZE] /* Preserve ucp. */ mov x21, x1