Re: [PATCH 2/3] HID: hid-sensor-custom: Convert to platform remove callback returning void

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2024-03-06 at 18:50 +0100, Uwe Kleine-König wrote:
> The .remove() callback for a platform driver returns an int which
> makes
> many driver authors wrongly assume it's possible to do error handling
> by
> returning an error code. However the value returned is ignored (apart
> from emitting a warning) and this typically results in resource
> leaks.
> 
> To improve here there is a quest to make the remove callback return
> void. In the first step of this quest all drivers are converted to
> .remove_new(), which already returns void. Eventually after all
> drivers
> are converted, .remove_new() will be renamed to .remove().
> 
> Trivially convert this driver from always returning zero in the
> remove
> callback to the void returning variant.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>

Acked-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>


> ---
>  drivers/hid/hid-sensor-custom.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid-
> sensor-custom.c
> index d85398721659..de7287f3af61 100644
> --- a/drivers/hid/hid-sensor-custom.c
> +++ b/drivers/hid/hid-sensor-custom.c
> @@ -1032,14 +1032,14 @@ static int hid_sensor_custom_probe(struct
> platform_device *pdev)
>         return ret;
>  }
>  
> -static int hid_sensor_custom_remove(struct platform_device *pdev)
> +static void hid_sensor_custom_remove(struct platform_device *pdev)
>  {
>         struct hid_sensor_custom *sensor_inst =
> platform_get_drvdata(pdev);
>         struct hid_sensor_hub_device *hsdev = pdev-
> >dev.platform_data;
>  
>         if (sensor_inst->custom_pdev) {
>                 platform_device_unregister(sensor_inst->custom_pdev);
> -               return 0;
> +               return;
>         }
>  
>         hid_sensor_custom_dev_if_remove(sensor_inst);
> @@ -1047,8 +1047,6 @@ static int hid_sensor_custom_remove(struct
> platform_device *pdev)
>         sysfs_remove_group(&sensor_inst->pdev->dev.kobj,
>                            &enable_sensor_attr_group);
>         sensor_hub_remove_callback(hsdev, hsdev->usage);
> -
> -       return 0;
>  }
>  
>  static const struct platform_device_id hid_sensor_custom_ids[] = {
> @@ -1068,7 +1066,7 @@ static struct platform_driver
> hid_sensor_custom_platform_driver = {
>                 .name   = KBUILD_MODNAME,
>         },
>         .probe          = hid_sensor_custom_probe,
> -       .remove         = hid_sensor_custom_remove,
> +       .remove_new     = hid_sensor_custom_remove,
>  };
>  module_platform_driver(hid_sensor_custom_platform_driver);
>  






[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux