From ece8426754d81eeaa53ac816e00416d64ca82181 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 9 Jun 2023 11:56:03 +0000 Subject: [PATCH] Revert "platform: Provide a remove callback that returns no value" This reverts commit d18789f4348488a4c0151b703424c1bb41641077. 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 --- drivers/base/platform.c | 4 +--- include/linux/platform_device.h | 11 ----------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/drivers/base/platform.c b/drivers/base/platform.c index ac5cf1a8d79a..652531f67135 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c @@ -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) diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index b9ad597d74e2..dcc1744503e4 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h @@ -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 *);