Devicetree
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Andrea della Porta" <andrea.porta@suse.com>
Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH v9 2/3] pwm: rp1: Add RP1 PWM controller driver
Date: Fri, 18 Sep 2026 10:08:31 +0000	[thread overview]
Message-ID: <20260918100832.0A3B31F000FF@smtp.kernel.org> (raw)
In-Reply-To: <22f454003902173a7230d0aee5fbd7261fcc163e.1789724999.git.andrea.porta@suse.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] lockdep: recursive locking splat in rp1_pwm_read_tachometer
--

commit 2891771f3f49717037220ec4f19e7c24529f99b5
Author: Naushir Patuck <naush@raspberrypi.com>

pwm: rp1: Add RP1 PWM controller driver

The Raspberry Pi RP1 southbridge features an embedded PWM controller with 4
output channels, alongside an RPM interface to read the fan speed on the
Raspberry Pi 5. This commit adds the supporting driver.

> diff --git a/drivers/pwm/pwm-rp1.c b/drivers/pwm/pwm-rp1.c
> new file mode 100644
> index 0000000000000..cfd38e46cc589
> --- /dev/null
> +++ b/drivers/pwm/pwm-rp1.c

[ ... ]

> +int rp1_pwm_read_tachometer(struct device *dev)
> +{
> +	struct pwm_chip *chip;
> +	struct rp1_pwm *rp1;
> +	u32 tach_val;
> +	int ret;
> +
> +	if (!dev)
> +		return -EINVAL;
> +
> +	device_lock(dev);
> +
> +	chip = dev_get_drvdata(dev);

[Severity: Medium]
Is it safe to call device_lock() inside this exported API?

When an external consumer (like a fan driver) calls this during its probe
or remove callbacks, the driver core already holds the consumer device's
lock. When this function then calls device_lock(), it acquires the PWM
device's lock. 

Because both locks belong to the exact same default device lock class, this
sequence triggers a lockdep recursive locking splat.

Could this access be protected using the driver's own internal
synchronization (such as rp1->lock) instead of relying on the driver core's
device_lock()?

> +	if (!chip) {
> +		ret = -ENODEV;
> +		goto err_dev_unlock;
> +	}
> +

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/cover.1789724999.git.andrea.porta@suse.com?part=2

  reply	other threads:[~2026-09-18 10:08 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-18  9:58 [PATCH v9 0/3] Add RP1 PWM controller support Andrea della Porta
2026-09-18  9:59 ` [PATCH v9 1/3] dt-bindings: pwm: Add Raspberry Pi RP1 PWM controller Andrea della Porta
2026-09-18  9:59 ` [PATCH v9 2/3] pwm: rp1: Add RP1 PWM controller driver Andrea della Porta
2026-09-18 10:08   ` sashiko-bot [this message]
2026-09-22 19:51   ` Gary Guo
2026-09-23 12:51     ` Andrea della Porta
2026-09-23 13:46       ` Gary Guo
2026-09-23 16:28         ` Andrea della Porta
2026-09-24 18:05           ` Gary Guo
2026-09-18  9:59 ` [PATCH v9 3/3] arm64: dts: broadcom: rpi-5: Add RP1 PWM node Andrea della Porta

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=20260918100832.0A3B31F000FF@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=andrea.porta@suse.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=robh@kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox