Revert "platform: Provide a remove callback that returns no value"

This reverts commit d18789f434.  It breaks
the ABI and is not needed for now.  It will come in at the next ABI
break so that future releases will be easier to manage.

Bug: 161946584
Change-Id: I286d30b0ff8b533bca1aa715eb396cc9d737a939
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman
2023-06-09 11:56:03 +00:00
parent 9325fcde01
commit ece8426754
2 changed files with 1 additions and 14 deletions

View File

@@ -1427,9 +1427,7 @@ static void platform_remove(struct device *_dev)
struct platform_driver *drv = to_platform_driver(_dev->driver);
struct platform_device *dev = to_platform_device(_dev);
if (drv->remove_new) {
drv->remove_new(dev);
} else if (drv->remove) {
if (drv->remove) {
int ret = drv->remove(dev);
if (ret)

View File

@@ -209,18 +209,7 @@ extern void platform_device_put(struct platform_device *pdev);
struct platform_driver {
int (*probe)(struct platform_device *);
/*
* Traditionally the remove callback returned an int which however is
* ignored by the driver core. This led to wrong expectations by driver
* authors who thought returning an error code was a valid error
* handling strategy. To convert to a callback returning void, new
* drivers should implement .remove_new() until the conversion it done
* that eventually makes .remove() return void.
*/
int (*remove)(struct platform_device *);
void (*remove_new)(struct platform_device *);
void (*shutdown)(struct platform_device *);
int (*suspend)(struct platform_device *, pm_message_t state);
int (*resume)(struct platform_device *);