Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [Critical] Sysfs attributes were inadvertently moved from the backlight class 
device to the platform device, breaking userspace ABI.
--

commit b4eaddced56809e9f87ffe143724f151f0e7013e
Author: Svyatoslav Ryhel <[email protected]>

mfd: lm3533: Use dev_groups in struct device_driver

This commit replaces manual sysfs attribute creation during probe and
removal in favor of using dev_groups in struct device_driver. The goal
is to let the core handle the creation and removal of these attributes
automatically.

> diff --git a/drivers/video/backlight/lm3533_bl.c 
> b/drivers/video/backlight/lm3533_bl.c
> index 4d6f680334802..9ef171d3aaeab 100644
> --- a/drivers/video/backlight/lm3533_bl.c
> +++ b/drivers/video/backlight/lm3533_bl.c
[ ... ]
> @@ -304,28 +309,17 @@ static int lm3533_bl_probe(struct platform_device *pdev)
>  
>       platform_set_drvdata(pdev, bl);
>  
> -     ret = sysfs_create_group(&bd->dev.kobj, &lm3533_bl_attribute_group);

[Severity: Critical]
By removing this manual sysfs_create_group() call and moving it to the platform
driver's dev_groups, will this change the location of the sysfs attributes?

The original code registers the attributes on the backlight class device's
kobject (&bd->dev.kobj), meaning they appear under
/sys/class/backlight/<name>/.

> -     if (ret < 0) {
> -             dev_err(&pdev->dev, "failed to create sysfs attributes\n");
> -             return ret;
> -     }
> -
>       backlight_update_status(bd);

[ ... ]

> @@ -377,6 +370,7 @@ static struct platform_driver lm3533_bl_driver = {
>       .driver = {
>               .name   = "lm3533-backlight",
>               .pm     = &lm3533_bl_pm_ops,
> +             .dev_groups = lm3533_bl_attribute_groups,

[Severity: Critical]
Does moving the attributes to the platform driver's dev_groups inadvertently
register them on the platform device instead of the backlight class device?

This means attributes like als_channel, als_en, and linear would now be exposed
under /sys/bus/platform/devices/lm3533-backlight.<id>/ instead of their
previous location.

Will this break backward compatibility for userspace tools relying on the
standard backlight path?

>       },
>       .probe          = lm3533_bl_probe,
>       .remove         = lm3533_bl_remove,

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=11

Reply via email to