From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D7EB1DE8AA for ; Tue, 7 Jan 2025 09:41:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736242892; cv=none; b=nov8RjUxzVfsT9JimSRAJoiByJvQf8/HIlIuw6PQJk+Ju8oFs/tNjzWjX/WJo94f+3qVs3DfTz/v/7qgaYWAEnM/UxB98l/bl/DfcWPkYHdzHqDbmB8JRoP35BK/e0Qdd9NPw5PYCHJ1qrBqRfr0ZCDF4dT8e1eetpdL3EHzXcI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736242892; c=relaxed/simple; bh=6Kc45rxPRdH9VyKNLigmXAqKioGcBWKfR4cX9Yu21lI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=t1v1nanG33DQMd4/e4oEa7Bhy05o6jUFmjzI5wZXx+ecI9/4R4bT3k2fAyFu3pMmFts/tAvV52wsWvqRMH9HD4VfzxET1FKsb7zEGvBDJSpPpzBXMGmUJm9uVORpFMD4xde5wfEjVTjN8jlRB9mSyrzNJFRVT1Nyke2b54WouuU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=CtkKtTfp; arc=none smtp.client-ip=209.85.218.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="CtkKtTfp" Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-aaf8f0ea963so3097466b.3 for ; Tue, 07 Jan 2025 01:41:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1736242888; x=1736847688; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=fxoDZkceuldN2v+AcZoQ7wCap4C6/eLU9DTPkxF/gzU=; b=CtkKtTfpsLpjUD5jsuUqmkjbaGtSGppduDTLQL//AlV59gZ1ias1ah/t8Ae+LFOLvr v17rFN4Og0G+uz6imh7M+3poIo8BjJSB6DjUKy9RiFFHEkvTdFfSI6YFGNJ7rs9BMQbI We+FA7iF1lI5xYk44hs2ydRc2+Lk6IIk4YdjqPPovjnaP2MHZZazUULEPknIW9e1v5S4 7B7BAJGOHl2Kv/ObuRbOdh5ZR0XiFT88tGHQI4cJ/oAj8V3uLde/QJKwNigN19TfBoNV uT9fsGxjy0pxe+ewpYjC1pJFgA2h0jPjhu8H2gxTBigBFhXESI3pnpZa5pSrcMnqGGGo 2dYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736242888; x=1736847688; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fxoDZkceuldN2v+AcZoQ7wCap4C6/eLU9DTPkxF/gzU=; b=G5PLI8fUpi8WoDcic2aXUxFUdtn6kO+VEHd4ttc4nQuP6uxUuSoK4GhIPmCQegJ0DH AXoQUlPjEOqt2uQHdx66UOg8hC97ibMbfH76zlipcnJVw93RxgbZgzwRFMr47Y7JdVYc 5BVzKKBMEa0FJsbJWYYzCXpYHUF0tdu5z98HhZGaevq9fp/LK+9VQAM6/zjl+ya+WfKV yYZD2PeSsjnoo/IQ2Y1PTRKhZ5Ss0OAx0MMwWI/Q7OscXzeMTs5IpEoVxVK8IKnHljNB cm3nxcS1G4PX9sBC7AikNHmuEzEjFk5e7Z7S2RMrKAqyNxnXLc4nvM+WgTxoLRH6sDmU HCWQ== X-Forwarded-Encrypted: i=1; AJvYcCXx+ZahyL6xSN3hdC5dDRX4vsOqn0lJT+D8EEn+eAXrXC/Az7piily+6SJYCmj7Cfmh3QgCMV8d81bgapM=@vger.kernel.org X-Gm-Message-State: AOJu0Yxia8Tsgr32sQRLMZdccFsIXxxdBhwCNhUzLfCeEBwA7QKF3EVv qCw3r0f/GbFYOs8jzVLT2o7LMxIg/anojXME9eay6itxeeHis+0suvZ6q+eNGl8= X-Gm-Gg: ASbGncuSvtyXxziatjTVTb+FJAIHOjf2ta7C5oUeXBZGyVZ2yVpCSLs8KHwnn2Nnfyn Jdu95fEGC2oVSmH2PeAYbNCZpIhzEDpg/kr7VeYzJdKc6e4emoA6RxpgZ/Nv/brT0W6MHNRD0FP SyIdHqYqIWUWnkGcTpAp9V4nkXb4XCQqLTiOEJu4a+D1QX1VwRHDNGrp/9JTLIAzxsyC/55waPy 5r+Soga3BEvuzY+GdZuH9PON5ncwMPEop0rAJ2sz+ifguqMlHBIFzseQJFg7Szrp2o= X-Google-Smtp-Source: AGHT+IEM28Aop4iPJtDsWQ84LuFu7WxnHVAzJRG9etmyple0xNlzoIv/hKHIlrWa557ZtbVDH/zCCw== X-Received: by 2002:a17:907:7f8e:b0:aa6:9198:75a2 with SMTP id a640c23a62f3a-aac334e51afmr5458619866b.44.1736242888513; Tue, 07 Jan 2025 01:41:28 -0800 (PST) Received: from [192.168.1.140] ([85.235.12.238]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aac0f012229sm2356901166b.133.2025.01.07.01.41.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jan 2025 01:41:28 -0800 (PST) From: Linus Walleij Date: Tue, 07 Jan 2025 10:41:18 +0100 Subject: [PATCH RFC v3 02/30] ARM: ptrace: Split report_syscall() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250107-arm-generic-entry-v3-2-4e5f3c15db2d@linaro.org> References: <20250107-arm-generic-entry-v3-0-4e5f3c15db2d@linaro.org> In-Reply-To: <20250107-arm-generic-entry-v3-0-4e5f3c15db2d@linaro.org> To: Dmitry Vyukov , Oleg Nesterov , Russell King , Kees Cook , Andy Lutomirski , Will Drewry , Frederic Weisbecker , "Paul E. McKenney" , Jinjie Ruan , Arnd Bergmann , Ard Biesheuvel , Al Viro Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Linus Walleij X-Mailer: b4 0.14.2 The generic entry code requires that report_syscall() be provided in two parts: report_syscall_enter() and report_syscall_exit() so split the combined function in two. Signed-off-by: Linus Walleij --- arch/arm/kernel/ptrace.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index c421a899fc84c476a672cbfe1c8ece8355d8512d..07b0daf47441f1f76a8af416acc74fa5ed770403 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c @@ -827,31 +827,45 @@ enum ptrace_syscall_dir { PTRACE_SYSCALL_EXIT, }; -static void report_syscall(struct pt_regs *regs, enum ptrace_syscall_dir dir) +static void report_syscall_enter(struct pt_regs *regs) { unsigned long ip; /* * IP is used to denote syscall entry/exit: - * IP = 0 -> entry, =1 -> exit + * IP = 0 -> entry */ ip = regs->ARM_ip; - regs->ARM_ip = dir; + regs->ARM_ip = PTRACE_SYSCALL_ENTER; - if (dir == PTRACE_SYSCALL_EXIT) - ptrace_report_syscall_exit(regs, 0); - else if (ptrace_report_syscall_entry(regs)) + if (ptrace_report_syscall_entry(regs)) current_thread_info()->abi_syscall = -1; regs->ARM_ip = ip; } +static void report_syscall_exit(struct pt_regs *regs) +{ + unsigned long ip; + + /* + * IP is used to denote syscall entry/exit: + * IP = 1 -> exit + */ + ip = regs->ARM_ip; + regs->ARM_ip = PTRACE_SYSCALL_EXIT; + + ptrace_report_syscall_exit(regs, 0); + + regs->ARM_ip = ip; +} + asmlinkage int syscall_trace_enter(struct pt_regs *regs) { int scno; if (test_thread_flag(TIF_SYSCALL_TRACE)) - report_syscall(regs, PTRACE_SYSCALL_ENTER); + report_syscall_enter(regs); /* Do seccomp after ptrace; syscall may have changed. */ #ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER @@ -892,5 +906,5 @@ asmlinkage void syscall_trace_exit(struct pt_regs *regs) trace_sys_exit(regs, regs_return_value(regs)); if (test_thread_flag(TIF_SYSCALL_TRACE)) - report_syscall(regs, PTRACE_SYSCALL_EXIT); + report_syscall_exit(regs); } -- 2.47.1