From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 748A6C4167B for ; Mon, 11 Dec 2023 13:57:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EAC016B00E7; Mon, 11 Dec 2023 08:57:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E5C1E6B00E8; Mon, 11 Dec 2023 08:57:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D25486B00E9; Mon, 11 Dec 2023 08:57:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id C1F016B00E7 for ; Mon, 11 Dec 2023 08:57:41 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id A331B120800 for ; Mon, 11 Dec 2023 13:57:41 +0000 (UTC) X-FDA: 81554690322.21.44384D5 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf07.hostedemail.com (Postfix) with ESMTP id DB6A640025 for ; Mon, 11 Dec 2023 13:57:39 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=V374Q210; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf07.hostedemail.com: domain of sashal@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sashal@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702303059; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=yhJ9uAuhvDCNtLuBWX/t7W27Eu95XemQPPewdkWu1BQ=; b=E/0V4AOMLmypSUjN4yEci4tBhdZ7eurQNHp1m0rWnxaXL9fieYnrzXbrKiL8j7nVRB2anC hUEwFrisghJGg5z6+XLhIi3MOHQPZCnbxsrh65L7v7JSzFdJJ1Vq1TfDckDRZ/CawnWUFW O17H4FyI0YjHNI0NqF4azEinELRf4LE= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=V374Q210; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf07.hostedemail.com: domain of sashal@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sashal@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702303059; a=rsa-sha256; cv=none; b=NQUlRJJIWCC7wLgpL/JI8T6G3sMo3Lfn/VoJxlKQCKODmsiOfIyKy4OlVzVDrrNpX/7Y3k KtIKkd2PkemXzxmdJEhllf6FFIaAF/AOe8qULpiTDBf/k0P0Rz2bj4Nrm3m3hRs752SF+o HJvcz3s+vgKE7HBwHl1DYNF3h8BKDNA= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 2ABA5612B8; Mon, 11 Dec 2023 13:57:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 06E69C433C9; Mon, 11 Dec 2023 13:57:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1702303059; bh=gmWXl8OnCsDxGnfCAvvdJ9/lz1xt84JHADheam84Pw0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V374Q210qweBD3E8fXjl1CBQBikPTEb7Kz6PJdJC36Zcckw50tE9/yRhcFF0BFqdF zu0Gx1qAfPHR4FyqcD9HT93uQBZAgrUei1mt1Q1B/GqPeBLorMfwYWQz0q77iXy/p+ SbS71XArMz88bAK2DMsjBEs2oNPn6C/v883SmFYuopOuVHdUl1TSQ82EY/5kb6DsNx 4zqTvAn8dKZkAK7zSddzozfAKt15ZKEjoNwSEtMmQqpMR8CjyMhET9GE5lbJoOSU9K +xDjyUBaWyyiPT8mcbkAcVy04d732RcMlxfu7qJiNrbUozcWIK7XvpduGJxbNmujD/ 3F0QBPgBb6FIw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Hengqi Chen , Huacai Chen , Sasha Levin , chenhuacai@kernel.org, yangtiezhu@loongson.cn, loongarch@lists.linux.dev, linux-mm@kvack.org Subject: [PATCH AUTOSEL 6.1 29/29] LoongArch: Preserve syscall nr across execve() Date: Mon, 11 Dec 2023 08:54:13 -0500 Message-ID: <20231211135457.381397-29-sashal@kernel.org> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231211135457.381397-1-sashal@kernel.org> References: <20231211135457.381397-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.1.66 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: DB6A640025 X-Stat-Signature: 9xucso1p6p9e6g9eo447f86kfc76y571 X-HE-Tag: 1702303059-397789 X-HE-Meta: U2FsdGVkX1/bsIzCDH+0PEKGyR4yeVXZTsqZj4VzL3PKTV6rJD8OC8CciHy2DTD8B59WiVwsNWuw/DXUPhRc3XmxsGE9omrEFD9PHC6CNY6WaT5vY2dlUPMWM77JNM1qt9RyxY9zK6iLItrvj4GBR/PlWisp6rCSOHj2SssUzk881H2Qn7OP89glNano1EQhM+aGcRLqjaYCCRlURBrIBC0prL5HKZGTX5baEzoFtHiEtV6DZRMbi9ou23rTiiZilWcFEp8KuNWKWRn3i2QDlV2/EytajEs5oVD8N5IzBbhLOXEF+G2diTXHGv0ZQBQCxEhKv2eLWYRpSkD1uiE+veFnNKHJjiqRFEEuEIx08IOs/arLi2erl6cZRKGa+G8Ycb0vkFF5dPTsMlvd671bSeHGpl7MhiaZpzhabA+1yNLQoVV0KUPhd5+N5vjEV8pn/ZwL2fiGkuXTSn89d7vR6r34RLS7QnkvPdTTSdcLA0QCbOwkEpsIE+PmDuAyEOxXy4IKVTTJVhh/lw7YDeCUmBDFj1QAmU2p6bj1hFGRKDfHnf0/2By7krxgn5VqtiXC9vayhv5Fr+Y2zY/LvBrZX8RI/Kt41yJ2dLR3D7pl2dUHVuEMdYTCF+P85rxapqkKKXMQ92iO1M6ytGkdsxOxfcICyofpB4zQskPCnusfoEQeTX5A4y7Ootnpy3XLE9wVD/uSps/oUXjt2Yvp14KaxMaS/CD2ZL72O6vG5ANHsdwOSHZSZDfv0HobcMxU8z389XjODD5c8uGm1DRkDDmXVGIdN0lrzE4OaPahHhFfM6/ehsrRqEQiKlNLSCKip8J9nv22w5nD2g+ec36Y/fUc5ZTZG3/NkUy4geQpJxAzaXEkb03OICzWulSEMDdmnAPYNclhwDidO63mAnpUYLyTevZFzT5iJA1RIv5gxNmrPTuunZj3WEJpHElZ0GjaL+NCABbnNQeUH3KYZVJsQz/ aSh0SQsv WBNnv2298Reyuu3ZcWzMwshCF/hnUnDs+dQow7aXruQxFzwcHnCWSQR+gEJTWepR3ziamEol8MXZM7EkSi3GPVUOu6AvNbZaKVmO2No1Y4zkjNoHYxJrVCfco6oPDZx3jPGpC97CYutieUWmTxa9Exls6gclhJZ7QK9mYnZ6aok7feOeWLKgM7sYApM3nokFN38i7amjyP+PpZsR0/UxufUJCGPv6tSifGOc8lGbnmyPT7yf8qoUz7a2h45aAijws9M865dYy86bwUt1kofbvQdUZ9rr499I0lUGLGgHr2AoCJxuQIZXk6qSbjQf3UZ9UcNeuH2CD0nDak4o= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Hengqi Chen [ Upstream commit d6c5f06e46a836e6a70c7cfd95bb38a67d9252ec ] Currently, we store syscall nr in pt_regs::regs[11] and syscall execve() accidentally overrides it during its execution: sys_execve() -> do_execve() -> do_execveat_common() -> bprm_execve() -> exec_binprm() -> search_binary_handler() -> load_elf_binary() -> ELF_PLAT_INIT() ELF_PLAT_INIT() reset regs[11] to 0, so in syscall_exit_to_user_mode() we later get a wrong syscall nr. This breaks tools like execsnoop since it relies on execve() tracepoints. Skip pt_regs::regs[11] reset in ELF_PLAT_INIT() to fix the issue. Signed-off-by: Hengqi Chen Signed-off-by: Huacai Chen Signed-off-by: Sasha Levin --- arch/loongarch/include/asm/elf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/loongarch/include/asm/elf.h b/arch/loongarch/include/asm/elf.h index b9a4ab54285c1..9b16a3b8e7060 100644 --- a/arch/loongarch/include/asm/elf.h +++ b/arch/loongarch/include/asm/elf.h @@ -293,7 +293,7 @@ extern const char *__elf_platform; #define ELF_PLAT_INIT(_r, load_addr) do { \ _r->regs[1] = _r->regs[2] = _r->regs[3] = _r->regs[4] = 0; \ _r->regs[5] = _r->regs[6] = _r->regs[7] = _r->regs[8] = 0; \ - _r->regs[9] = _r->regs[10] = _r->regs[11] = _r->regs[12] = 0; \ + _r->regs[9] = _r->regs[10] /* syscall n */ = _r->regs[12] = 0; \ _r->regs[13] = _r->regs[14] = _r->regs[15] = _r->regs[16] = 0; \ _r->regs[17] = _r->regs[18] = _r->regs[19] = _r->regs[20] = 0; \ _r->regs[21] = _r->regs[22] = _r->regs[23] = _r->regs[24] = 0; \ -- 2.42.0