All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yeoreum Yun <yeoreum.yun@arm.com>
To: sashiko-reviews@lists.linux.dev
Cc: Yeoreum Yun <yeoreum.yun@arm.com>,
	linux-rt-devel@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v12 01/14] coresight: etm4x: read-back TRCSEQSTR at disabling and prohibit modifying seq_state while enabling.
Date: Fri, 2 Oct 2026 18:02:53 +0100	[thread overview]
Message-ID: <ar_jvRE0C0Jb8WDE@e129823.arm.com> (raw)
In-Reply-To: <20260924174611.917571F00893@smtp.kernel.org>

> Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
> - [Medium] coresight: TOCTOU race in seq_state_store lockless mode check
> - [Low] coresight: misplaced IS_ERR_OR_NULL(drvdata) after dereference
> --
> 
> commit fb240199cfa6db080873efbe2c007beb70c01070
> Author: Yeoreum Yun <yeoreum.yun@arm.com>
> 
> coresight: etm4x: read-back TRCSEQSTR at disabling and prohibit modifying seq_state while enabling.
> 
> TRCSEQSTR can be changed by the ETM while a session is active. Its value
> therefore needs to be preserved when a sysfs session is disabled so that
> users can read the current sequence state after the session ends.
> 
> > diff --git a/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c b/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
> > index cc6cdd3ae29d5..db3cf4ad6806c 100644
> > --- a/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
> > +++ b/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c
> > @@ -1437,6 +1437,8 @@ static ssize_t seq_state_store(struct device *dev,
> >  		return -EINVAL;
> >  	if (val >= drvdata->nrseqstate)
> >  		return -EINVAL;
> > +	if (IS_ERR_OR_NULL(drvdata) || coresight_get_mode(drvdata->csdev))
> > +		return -EBUSY;
> 
> [Severity: Low]
> Does this code introduce a regression by checking drvdata for NULL after it
> has already been dereferenced?
> 
> Looking at seq_state_store(), drvdata is dereferenced during the check for
> val >= drvdata->nrseqstate before IS_ERR_OR_NULL(drvdata) is called.

Yes. I'll fix it.

> 
> While drvdata is fundamentally guaranteed to be valid in this sysfs context,
> making the check technically dead code rather than a reachable crash, should
> the validation be moved before the dereference if it is kept?
> 
> >  
> >  	config->seq_state = val;
> 
> [Severity: Medium]
> Could this lockless mode check cause a regression?
> 
> A concurrent thread could enable the trace session immediately after the
> lockless coresight_get_mode() check evaluates to disabled. This would allow
> config->seq_state to be modified while the session is actively starting or
> already active, completely defeating the patch's stated goal of prohibiting
> state modification during an active session.
> 
> Should raw_spin_lock(&drvdata->spinlock) be held across both the mode check
> and the subsequent state update to prevent this regression?
> 
> >  	return size;
> >  }

This doesn't matter, TBH I don't expect user concurrently setup the
configuration while session is not ended yet and similar problem
is already exist before separation of this patch too.

So, this is ignorable.

-- 
Sincerely,
Yeoreum Yun

  reply	other threads:[~2026-10-02 17:02 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-24 17:33 [PATCH v12 00/14] fix several inconsistencies with sysfs configuration in etmX Yeoreum Yun
2026-09-24 17:33 ` [PATCH v12 01/14] coresight: etm4x: read-back TRCSEQSTR at disabling and prohibit modifying seq_state while enabling Yeoreum Yun
2026-09-24 17:46   ` sashiko-bot
2026-10-02 17:02     ` Yeoreum Yun [this message]
2026-09-29 10:40   ` Mike Leach
2026-09-24 17:33 ` [PATCH v12 02/14] coresight: etm4x: prohibit modifying cntr_val while session is enabled Yeoreum Yun
2026-09-29 10:40   ` Mike Leach
2026-09-24 17:33 ` [PATCH v12 03/14] coresight: etm3x: prohibit modifying cntr_val and reset " Yeoreum Yun
2026-09-24 17:58   ` sashiko-bot
2026-10-02 17:22     ` Yeoreum Yun
2026-09-24 17:33 ` [PATCH v12 04/14] coresight: etm4x: fix inconsistencies with sysfs configuration Yeoreum Yun
2026-09-29 10:48   ` Mike Leach
2026-09-24 17:33 ` [PATCH v12 05/14] coresight: etm3x: " Yeoreum Yun
2026-09-29 10:49   ` Mike Leach
2026-09-24 17:33 ` [PATCH v12 06/14] coresight: etm3x: remove redundant cpu online check on etm_enable_sysfs() Yeoreum Yun
2026-09-24 17:33 ` [PATCH v12 07/14] coresight: etm4x: introduce struct etm4_caps Yeoreum Yun
2026-09-24 17:33 ` [PATCH v12 08/14] coresight: etm4x: exclude ss_status from drvdata->config Yeoreum Yun
2026-09-24 18:21   ` sashiko-bot
2026-10-02 17:15     ` Yeoreum Yun
2026-09-29 10:53   ` Mike Leach
2026-09-24 17:33 ` [PATCH v12 09/14] coresight: etm4x: remove s_ex_level from config Yeoreum Yun
2026-09-24 17:33 ` [PATCH v12 10/14] coresight: etm4x: rename local config as curr_config referring drvdata->curr_config Yeoreum Yun
2026-09-29 10:54   ` Mike Leach
2026-09-24 17:33 ` [PATCH v12 11/14] coresight: etm4x: rename drvdata->config to sysfs_config Yeoreum Yun
2026-09-29 10:55   ` Mike Leach
2026-09-24 17:33 ` [PATCH v12 12/14] coresight: etm3x: introduce struct etm_caps Yeoreum Yun
2026-09-24 17:33 ` [PATCH v12 13/14] coresight: etm3x: rename local config as curr_config referring drvdata->curr_config Yeoreum Yun
2026-09-29 10:55   ` Mike Leach
2026-09-24 17:33 ` [PATCH v12 14/14] coresight: etm3x: rename drvdata->config to sysfs_config Yeoreum Yun
2026-09-24 18:36   ` sashiko-bot
2026-10-02 17:16     ` Yeoreum Yun
2026-09-29 10:55   ` Mike Leach

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=ar_jvRE0C0Jb8WDE@e129823.arm.com \
    --to=yeoreum.yun@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-devel@lists.linux.dev \
    --cc=sashiko-reviews@lists.linux.dev \
    /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.