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

This reverts commit 9d3ac384cb.

It breaks the Android kernel abi and will be brought back later at the
next break-point-time.

Bug: 161946584
Change-Id: I0fbf6d9615912c6ac791fb85c03e66fb087c56e1
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2023-06-13 18:37:05 +00:00
parent f1fdb6e6a9
commit 5caf658594
2 changed files with 1 additions and 14 deletions

View File

@ -1416,9 +1416,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

@ -213,18 +213,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 *);