Devicetree
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Svyatoslav Ryhel" <clamor95@gmail.com>
Cc: robh@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v3 10/11] video: backlight: lm3533_bl: Implement backlight_scale property
Date: Mon, 01 Jun 2026 15:37:55 +0000	[thread overview]
Message-ID: <20260601153756.463351F00899@smtp.kernel.org> (raw)
In-Reply-To: <20260601151831.76350-11-clamor95@gmail.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Unprotected concurrent modification of hardware register and `bd->props.scale` causes state desynchronization.
--

commit 8adaee77dd01ba44b6fdadefc561f4ab4fed6761
Author: Svyatoslav Ryhel <clamor95@gmail.com>

video: backlight: lm3533_bl: Implement backlight_scale property

This commit implements the backlight_scale property to describe the linear
and non-linear modes supported by the device.

> diff --git a/drivers/video/backlight/lm3533_bl.c b/drivers/video/backlight/lm3533_bl.c
> index f0d88b7bc229d..945625c54fc43 100644
> --- a/drivers/video/backlight/lm3533_bl.c
> +++ b/drivers/video/backlight/lm3533_bl.c
> @@ -161,6 +161,7 @@ static ssize_t store_linear(struct device *dev,
>  					const char *buf, size_t len)
>  {
>  	struct lm3533_bl *bl = dev_get_drvdata(dev);
> +	struct backlight_device *bd = bl->bd;
>  	int id = lm3533_bl_get_ctrlbank_id(bl);
>  	unsigned long linear;
>  	int ret;
> @@ -174,6 +175,9 @@ static ssize_t store_linear(struct device *dev,
>  	if (ret)
>  		return ret;
>  
> +	bd->props.scale = linear ? BACKLIGHT_SCALE_LINEAR :
> +				   BACKLIGHT_SCALE_NON_LINEAR;

[Severity: Medium]
Is it possible for the hardware state and the software state in
bd->props.scale to become desynchronized here?

Because sysfs writes can execute concurrently, could an interleaved
execution of store_linear() by two different threads result in a race
condition where the states diverge?

For example:
Thread 1 writes linear=1
Thread 1 updates hardware via regmap_update_bits()

Thread 2 writes linear=0
Thread 2 updates hardware via regmap_update_bits()
Thread 2 updates bd->props.scale = BACKLIGHT_SCALE_NON_LINEAR

Thread 1 updates bd->props.scale = BACKLIGHT_SCALE_LINEAR

Would wrapping this update sequence in a lock ensure the hardware and
software states remain consistent?

> +
>  	return len;
>  }
>  

[ ... ]

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260601151831.76350-1-clamor95@gmail.com?part=10

  reply	other threads:[~2026-06-01 15:37 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-01 15:18 [PATCH v3 00/11] mfd: lm3533: convert to OF bindings, improve support Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 01/11] dt-bindings: leds: Document TI LM3533 LED controller Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 02/11] mfd: lm3533: Remove driver specific regmap wrappers Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 03/11] iio: light: lm3533-als: Remove redundant pdata helpers Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 04/11] mfd: lm3533-core: " Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 05/11] mfd: lm3533: Convert to use OF bindings Svyatoslav Ryhel
2026-06-01 15:35   ` sashiko-bot
2026-06-01 15:18 ` [PATCH v3 06/11] mfd: lm3533: Add support for VIN power supply Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 07/11] mfd: lm3533: Set DMA mask Svyatoslav Ryhel
2026-06-01 15:28   ` sashiko-bot
2026-06-01 15:18 ` [PATCH v3 08/11] video: backlight: lm3533_bl: Improve linear sysfs logic Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 09/11] video: backlight: lm3533_bl: Set initial mapping mode from DT Svyatoslav Ryhel
2026-06-01 15:18 ` [PATCH v3 10/11] video: backlight: lm3533_bl: Implement backlight_scale property Svyatoslav Ryhel
2026-06-01 15:37   ` sashiko-bot [this message]
2026-06-01 15:18 ` [PATCH v3 11/11] video: leds: backlight: lm3533: Support getting LED sources from DT Svyatoslav Ryhel
2026-06-01 15:37   ` sashiko-bot

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=20260601153756.463351F00899@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=clamor95@gmail.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