mbox series

[00/12] ata: Convert to platform remove callback returning void

Message ID 20230731091636.693193-1-u.kleine-koenig@pengutronix.de (mailing list archive)
Headers show
Series ata: Convert to platform remove callback returning void | expand

Message

Uwe Kleine-König July 31, 2023, 9:16 a.m. UTC
Hello,

this series adapts the platform drivers below drivers/ata to use the
.remove_new() callback. Compared to the traditional .remove() callback
.remove_new() returns no value. This is a good thing because the driver core
doesn't (and cannot) cope for errors during remove. The only effect of a
non-zero return value in .remove() is that the driver core emits a warning. The
device is removed anyhow and an early return from .remove() usually yields a
resource leak.

By changing the remove callback to return void driver authors cannot
reasonably assume any more that there is some kind of cleanup later.

All drivers touched here returned zero unconditionally in their remove
callback, so they could all be converted trivially to .remove_new().

Once all drivers are converted to .remove_new(), .remove() will be changed to
match today's .remove_new(). Then the drivers here will be converted back
trivially using s/remove_new/remove/. Given the amount of platform drivers this
is still a bit in the future, though.

Best regards
Uwe

Uwe Kleine-König (12):
  ata/pata_arasan_cf: Convert to platform remove callback returning void
  ata/pata_ep93xx: Convert to platform remove callback returning void
  ata/pata_ftide010: Convert to platform remove callback returning void
  ata/pata_imx: Convert to platform remove callback returning void
  ata/pata_mpc52xx: Convert to platform remove callback returning void
  ata/pata_pxa: Convert to platform remove callback returning void
  ata/pata_rb532_cf: Convert to platform remove callback returning void
  ata/sata_dwc_460ex: Convert to platform remove callback returning void
  ata/sata_fsl: Convert to platform remove callback returning void
  ata/sata_gemini: Convert to platform remove callback returning void
  ata/sata_mv: Convert to platform remove callback returning void
  ata/sata_rcar: Convert to platform remove callback returning void

 drivers/ata/pata_arasan_cf.c | 6 ++----
 drivers/ata/pata_ep93xx.c    | 5 ++---
 drivers/ata/pata_ftide010.c  | 6 ++----
 drivers/ata/pata_imx.c       | 6 ++----
 drivers/ata/pata_mpc52xx.c   | 6 ++----
 drivers/ata/pata_pxa.c       | 6 ++----
 drivers/ata/pata_rb532_cf.c  | 6 ++----
 drivers/ata/sata_dwc_460ex.c | 5 ++---
 drivers/ata/sata_fsl.c       | 6 ++----
 drivers/ata/sata_gemini.c    | 6 ++----
 drivers/ata/sata_mv.c        | 5 ++---
 drivers/ata/sata_rcar.c      | 6 ++----
 12 files changed, 24 insertions(+), 45 deletions(-)


base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5

Comments

Damien Le Moal Aug. 2, 2023, 8:58 a.m. UTC | #1
On 7/31/23 18:16, Uwe Kleine-König wrote:
> Hello,
> 
> this series adapts the platform drivers below drivers/ata to use the
> .remove_new() callback. Compared to the traditional .remove() callback
> .remove_new() returns no value. This is a good thing because the driver core
> doesn't (and cannot) cope for errors during remove. The only effect of a
> non-zero return value in .remove() is that the driver core emits a warning. The
> device is removed anyhow and an early return from .remove() usually yields a
> resource leak.
> 
> By changing the remove callback to return void driver authors cannot
> reasonably assume any more that there is some kind of cleanup later.
> 
> All drivers touched here returned zero unconditionally in their remove
> callback, so they could all be converted trivially to .remove_new().
> 
> Once all drivers are converted to .remove_new(), .remove() will be changed to
> match today's .remove_new(). Then the drivers here will be converted back
> trivially using s/remove_new/remove/. Given the amount of platform drivers this
> is still a bit in the future, though.

Applied to for-6.6 with minor tweaks to the patch titles prefix.
Thanks !