leds: mlxreg: Use devm_mutex_init() for mutex initialization

JIRA: https://issues.redhat.com/browse/RHEL-59052
CVE: CVE-2024-42129
Conflicts:
* Avoiding commit <606130209230> ("leds: Convert all platform drivers to
  return void")

commit efc347b9efee1c2b081f5281d33be4559fa50a16
Author: George Stark <gnstark@salutedevices.com>
Date: Thu, 11 Apr 2024 19:10:31 +0300

  In this driver LEDs are registered using devm_led_classdev_register()
  so they are automatically unregistered after module's remove() is done.
  led_classdev_unregister() calls module's led_set_brightness() to turn off
  the LEDs and that callback uses mutex which was destroyed already
  in module's remove() so use devm API instead.

  Signed-off-by: George Stark <gnstark@salutedevices.com>
  Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
  Link: https://lore.kernel.org/r/20240411161032.609544-8-gnstark@salutedevices.com
  Signed-off-by: Lee Jones <lee@kernel.org>

Signed-off-by: Desnes Nunes <desnesn@redhat.com>
This commit is contained in:
Desnes Nunes 2024-12-02 11:15:47 -03:00
parent c648a02a9d
commit 3e9db74a1c
1 changed files with 5 additions and 11 deletions

View File

@ -258,6 +258,7 @@ static int mlxreg_led_probe(struct platform_device *pdev)
{
struct mlxreg_core_platform_data *led_pdata;
struct mlxreg_led_priv_data *priv;
int err;
led_pdata = dev_get_platdata(&pdev->dev);
if (!led_pdata) {
@ -269,28 +270,21 @@ static int mlxreg_led_probe(struct platform_device *pdev)
if (!priv)
return -ENOMEM;
mutex_init(&priv->access_lock);
err = devm_mutex_init(&pdev->dev, &priv->access_lock);
if (err)
return err;
priv->pdev = pdev;
priv->pdata = led_pdata;
return mlxreg_led_config(priv);
}
static int mlxreg_led_remove(struct platform_device *pdev)
{
struct mlxreg_led_priv_data *priv = dev_get_drvdata(&pdev->dev);
mutex_destroy(&priv->access_lock);
return 0;
}
static struct platform_driver mlxreg_led_driver = {
.driver = {
.name = "leds-mlxreg",
},
.probe = mlxreg_led_probe,
.remove = mlxreg_led_remove,
};
module_platform_driver(mlxreg_led_driver);