From: sashiko-bot@kernel.org
To: "Vincent Donnefort" <vdonnefort@google.com>
Cc: "Oliver Upton" <oupton@kernel.org>,
kvmarm@lists.linux.dev, "Marc Zyngier" <maz@kernel.org>
Subject: Re: [PATCH] KVM: arm64: Fix hyp_trace clock disabling
Date: Tue, 14 Jul 2026 18:25:42 +0000 [thread overview]
Message-ID: <20260714182542.F33421F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260714181010.2527225-1-vdonnefort@google.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Missing cleanup in the error path of `hyp_trace_enable_tracing()` leaks the clock synchronization delayed work. Furthermore, this patch introduces a workqueue corruption if tracing is subsequently re-enabled.
--
--- Patch [1]: [PATCH] KVM: arm64: Fix hyp_trace clock disabling ---
commit c37a59b3ffe1e163385bedc8f21496d8af6fbc61
Author: Vincent Donnefort <vdonnefort@google.com>
KVM: arm64: Fix hyp_trace clock disabling
This commit fixes the disable path in hyp_trace_clock_enable() by returning
early instead of re-initializing the clock. It also cleans up the unused
lock and redundant running state from the clock structure.
> diff --git a/arch/arm64/kvm/hyp_trace.c b/arch/arm64/kvm/hyp_trace.c
> index 2411b4c32932c..0b03117a38ecd 100644
> --- a/arch/arm64/kvm/hyp_trace.c
> +++ b/arch/arm64/kvm/hyp_trace.c
> @@ -37,8 +37,6 @@ static struct hyp_trace_clock {
> u32 shift;
> struct delayed_work work;
> struct completion ready;
> - struct mutex lock;
> - bool running;
> } hyp_clock;
[ ... ]
> @@ -110,12 +108,9 @@ static void hyp_trace_clock_enable(struct hyp_trace_clock *hyp_clock, bool enabl
> {
> struct system_time_snapshot snap;
>
> - if (hyp_clock->running == enable)
> - return;
> -
> if (!enable) {
> cancel_delayed_work_sync(&hyp_clock->work);
> - hyp_clock->running = false;
> + return;
> }
>
> ktime_get_snapshot_id(CLOCK_BOOTTIME, &snap);
> @@ -128,7 +123,6 @@ static void hyp_trace_clock_enable(struct hyp_trace_clock *hyp_clock, bool enabl
> INIT_DELAYED_WORK(&hyp_clock->work, __hyp_clock_work);
[Severity: Medium]
Is it safe to remove the hyp_clock->running check above, considering how
errors are handled in hyp_trace_enable_tracing()?
Looking at hyp_trace_enable_tracing(), if the hypercall fails, the error
is propagated but the clock is not stopped:
static int hyp_trace_enable_tracing(bool enable, void *priv)
{
hyp_trace_clock_enable(&hyp_clock, enable);
return kvm_call_hyp_nvhe(__tracing_enable, enable);
}
If the hypercall returns an error when enable is true, the user might
try to enable tracing again. This would result in a second call to
hyp_trace_clock_enable() with enable as true.
Without the running check returning early, the code will fall through and
call INIT_DELAYED_WORK() on the already active hyp_clock->work item. Can
this corrupt the workqueue list pointers?
Even though the hypercall might currently be prevented from failing due
to the remote lock serialization, should we add a rollback to the error
path in hyp_trace_enable_tracing() before dropping the running state check?
> schedule_delayed_work(&hyp_clock->work, msecs_to_jiffies(CLOCK_INIT_MS));
> wait_for_completion(&hyp_clock->ready);
> - hyp_clock->running = true;
> }
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260714181010.2527225-1-vdonnefort@google.com?part=1
next prev parent reply other threads:[~2026-07-14 18:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-14 18:10 [PATCH] KVM: arm64: Fix hyp_trace clock disabling Vincent Donnefort
2026-07-14 18:25 ` sashiko-bot [this message]
2026-07-15 7:13 ` Vincent Donnefort
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=20260714182542.F33421F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=maz@kernel.org \
--cc=oupton@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=vdonnefort@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.