From: Mark Rutland <mark.rutland@arm.com>
To: Jeremy Linton <jeremy.linton@arm.com>
Cc: linux-trace-kernel@vger.kernel.org,
linux-perf-users@vger.kernel.org, mhiramat@kernel.org,
oleg@redhat.com, peterz@infradead.org, acme@kernel.org,
namhyung@kernel.org, alexander.shishkin@linux.intel.com,
jolsa@kernel.org, irogers@google.com, adrian.hunter@intel.com,
kan.liang@linux.intel.com, thiago.bauermann@linaro.org,
broonie@kernel.org, yury.khrustalev@arm.com,
kristina.martsenko@arm.com, liaochang1@huawei.com,
catalin.marinas@arm.com, will@kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/7] arm64/gcs: task_gcs_el0_enable() should use passed task
Date: Wed, 19 Mar 2025 14:26:26 +0000 [thread overview]
Message-ID: <Z9rUEtZtNXhVnarO@J2N7QTR9R3> (raw)
In-Reply-To: <20250318204841.373116-2-jeremy.linton@arm.com>
On Tue, Mar 18, 2025 at 03:48:35PM -0500, Jeremy Linton wrote:
> Mark Rutland noticed that the task parameter is ignored and
> 'current' is being used instead. Since this is usually
> what its passed, it hasn't yet been causing problems but likely
> will as the code gets more testing.
Are we sure nothing is relying upon the bug?
For example, in copy_thread_gcs():
copy_thread_gcs(p, ...) {
...
gcs = gcs_alloc_thread_stack(p, ...) {
...
if (!task_gcs_el0_enabled(p))
return 0;
...
< actually allocate here >
}
...
p->thread.gcs_el0_mode = current->thread.gcs_el0_mode;
...
}
Either that later assignment is redundant, or copy_thread_gcs() was
accidentally relying upon task_gcs_el0_enabled() reading from 'current'
rather than 'p', and this change opens up another bug...
Mark.
>
> Fixes: fc84bc5378a8 ("arm64/gcs: Context switch GCS state for EL0")
> Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
> ---
> arch/arm64/include/asm/gcs.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/include/asm/gcs.h b/arch/arm64/include/asm/gcs.h
> index f50660603ecf..5bc432234d3a 100644
> --- a/arch/arm64/include/asm/gcs.h
> +++ b/arch/arm64/include/asm/gcs.h
> @@ -58,7 +58,7 @@ static inline u64 gcsss2(void)
>
> static inline bool task_gcs_el0_enabled(struct task_struct *task)
> {
> - return current->thread.gcs_el0_mode & PR_SHADOW_STACK_ENABLE;
> + return task->thread.gcs_el0_mode & PR_SHADOW_STACK_ENABLE;
> }
>
> void gcs_set_el0_mode(struct task_struct *task);
> --
> 2.48.1
>
next prev parent reply other threads:[~2025-03-19 14:30 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-18 20:48 [PATCH 0/7] arm64: Enable UPROBES with GCS Jeremy Linton
2025-03-18 20:48 ` [PATCH 1/7] arm64/gcs: task_gcs_el0_enable() should use passed task Jeremy Linton
2025-03-19 13:12 ` Mark Brown
2025-03-19 14:26 ` Mark Rutland [this message]
2025-03-19 15:03 ` Mark Brown
2025-03-18 20:48 ` [PATCH 2/7] arm64: probes: Break ret out from bl/blr Jeremy Linton
2025-03-18 20:48 ` [PATCH 3/7] arm64: uaccess: Add additional userspace GCS accessors Jeremy Linton
2025-03-19 13:24 ` Mark Brown
2025-03-21 23:43 ` Jeremy Linton
2025-03-25 18:23 ` Mark Brown
2025-03-18 20:48 ` [PATCH 4/7] arm64: probes: Add GCS support to bl/blr/ret Jeremy Linton
2025-03-18 20:48 ` [PATCH 5/7] arm64: uprobes: Add GCS support to uretprobes Jeremy Linton
2025-03-18 20:48 ` [PATCH 6/7] uprobes: Allow the use of uprobe_warn() in arch code Jeremy Linton
2025-03-19 13:32 ` Mark Brown
2025-03-19 14:34 ` Mark Rutland
2025-03-19 14:51 ` Oleg Nesterov
2025-03-19 16:40 ` Jeremy Linton
2025-03-18 20:48 ` [PATCH 7/7] arm64: Kconfig: Remove GCS restrictions on UPROBES Jeremy Linton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z9rUEtZtNXhVnarO@J2N7QTR9R3 \
--to=mark.rutland@arm.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=irogers@google.com \
--cc=jeremy.linton@arm.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=kristina.martsenko@arm.com \
--cc=liaochang1@huawei.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=namhyung@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=thiago.bauermann@linaro.org \
--cc=will@kernel.org \
--cc=yury.khrustalev@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox