Linux-IIO Archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] HID: Convert to platform remove callback returning void
@ 2024-03-06 17:50 Uwe Kleine-König
  2024-03-06 17:50 ` [PATCH 2/3] HID: hid-sensor-custom: " Uwe Kleine-König
  2024-04-03 11:23 ` [PATCH 0/3] HID: " Jiri Kosina
  0 siblings, 2 replies; 5+ messages in thread
From: Uwe Kleine-König @ 2024-03-06 17:50 UTC (permalink / raw
  To: Jiri Kosina, Benjamin Tissoires
  Cc: linux-input, kernel, Jonathan Cameron, Srinivas Pandruvada,
	linux-iio, Maximilian Luz, platform-driver-x86

Hello,

this series converts all platform drivers below drivers/hid to use
struct platform_driver::remove_new(). See commit 5c5a7680e67b
("platform: Provide a remove callback that returns no value") for an
extended explanation and the eventual goal.

All conversations are trivial, because their .remove() callbacks
returned zero unconditionally.

There are no interdependencies between these patches, so they could be
picked up individually. But I'd hope that they get picked up all
together.

Best regards
Uwe

Uwe Kleine-König (3):
  HID: google: hammer: Convert to platform remove callback returning void
  HID: hid-sensor-custom: Convert to platform remove callback returning void
  HID: surface-hid: kbd: Convert to platform remove callback returning void

 drivers/hid/hid-google-hammer.c       | 5 ++---
 drivers/hid/hid-sensor-custom.c       | 8 +++-----
 drivers/hid/surface-hid/surface_kbd.c | 5 ++---
 3 files changed, 7 insertions(+), 11 deletions(-)

base-commit: 11afac187274a6177a7ac82997f8691c0f469e41
-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/3] HID: hid-sensor-custom: Convert to platform remove callback returning void
  2024-03-06 17:50 [PATCH 0/3] HID: Convert to platform remove callback returning void Uwe Kleine-König
@ 2024-03-06 17:50 ` Uwe Kleine-König
  2024-03-06 18:40   ` srinivas pandruvada
  2024-03-09 18:40   ` Jonathan Cameron
  2024-04-03 11:23 ` [PATCH 0/3] HID: " Jiri Kosina
  1 sibling, 2 replies; 5+ messages in thread
From: Uwe Kleine-König @ 2024-03-06 17:50 UTC (permalink / raw
  To: Jiri Kosina, Benjamin Tissoires
  Cc: Jonathan Cameron, Srinivas Pandruvada, linux-input, linux-iio,
	kernel

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@pengutronix.de>
---
 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);
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/3] HID: hid-sensor-custom: Convert to platform remove callback returning void
  2024-03-06 17:50 ` [PATCH 2/3] HID: hid-sensor-custom: " Uwe Kleine-König
@ 2024-03-06 18:40   ` srinivas pandruvada
  2024-03-09 18:40   ` Jonathan Cameron
  1 sibling, 0 replies; 5+ messages in thread
From: srinivas pandruvada @ 2024-03-06 18:40 UTC (permalink / raw
  To: Uwe Kleine-König, Jiri Kosina, Benjamin Tissoires
  Cc: Jonathan Cameron, linux-input, linux-iio, kernel

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@pengutronix.de>

Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>


> ---
>  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);
>  


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/3] HID: hid-sensor-custom: Convert to platform remove callback returning void
  2024-03-06 17:50 ` [PATCH 2/3] HID: hid-sensor-custom: " Uwe Kleine-König
  2024-03-06 18:40   ` srinivas pandruvada
@ 2024-03-09 18:40   ` Jonathan Cameron
  1 sibling, 0 replies; 5+ messages in thread
From: Jonathan Cameron @ 2024-03-09 18:40 UTC (permalink / raw
  To: Uwe Kleine-König
  Cc: Jiri Kosina, Benjamin Tissoires, Srinivas Pandruvada, linux-input,
	linux-iio, kernel

On Wed,  6 Mar 2024 18:50:49 +0100
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> 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@pengutronix.de>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/3] HID: Convert to platform remove callback returning void
  2024-03-06 17:50 [PATCH 0/3] HID: Convert to platform remove callback returning void Uwe Kleine-König
  2024-03-06 17:50 ` [PATCH 2/3] HID: hid-sensor-custom: " Uwe Kleine-König
@ 2024-04-03 11:23 ` Jiri Kosina
  1 sibling, 0 replies; 5+ messages in thread
From: Jiri Kosina @ 2024-04-03 11:23 UTC (permalink / raw
  To: Uwe Kleine-König
  Cc: Benjamin Tissoires, linux-input, kernel, Jonathan Cameron,
	Srinivas Pandruvada, linux-iio, Maximilian Luz,
	platform-driver-x86

On Wed, 6 Mar 2024, Uwe Kleine-König wrote:

> Hello,
> 
> this series converts all platform drivers below drivers/hid to use
> struct platform_driver::remove_new(). See commit 5c5a7680e67b
> ("platform: Provide a remove callback that returns no value") for an
> extended explanation and the eventual goal.
> 
> All conversations are trivial, because their .remove() callbacks
> returned zero unconditionally.
> 
> There are no interdependencies between these patches, so they could be
> picked up individually. But I'd hope that they get picked up all
> together.

Applied, thanks.

-- 
Jiri Kosina
SUSE Labs


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-04-03 11:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-06 17:50 [PATCH 0/3] HID: Convert to platform remove callback returning void Uwe Kleine-König
2024-03-06 17:50 ` [PATCH 2/3] HID: hid-sensor-custom: " Uwe Kleine-König
2024-03-06 18:40   ` srinivas pandruvada
2024-03-09 18:40   ` Jonathan Cameron
2024-04-03 11:23 ` [PATCH 0/3] HID: " Jiri Kosina

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).