Using devres infrastructure it is possible to write a serdev driver that doesn't have any code that needs to be called as a part of .remove. Add code to make .remove optional.
Cc: [email protected] Cc: [email protected] Cc: Rob Herring <[email protected]> Cc: [email protected] Cc: Guenter Roeck <[email protected]> Cc: Lucas Stach <[email protected]> Cc: Nikita Yushchenko <[email protected]> Cc: Lee Jones <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Pavel Machek <[email protected]> Cc: Andy Shevchenko <[email protected]> Cc: Johan Hovold <[email protected]> Cc: Sebastian Reichel <[email protected]> Acked-by: Rob Herring <[email protected]> Reviewed-by: Sebastian Reichel <[email protected]> Reviewed-by: Guenter Roeck <[email protected]> Signed-off-by: Andrey Smirnov <[email protected]> --- drivers/tty/serdev/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serdev/core.c b/drivers/tty/serdev/core.c index 1bef39828ca7..34050b439c1f 100644 --- a/drivers/tty/serdev/core.c +++ b/drivers/tty/serdev/core.c @@ -268,8 +268,8 @@ static int serdev_drv_probe(struct device *dev) static int serdev_drv_remove(struct device *dev) { const struct serdev_device_driver *sdrv = to_serdev_device_driver(dev->driver); - - sdrv->remove(to_serdev_device(dev)); + if (sdrv->remove) + sdrv->remove(to_serdev_device(dev)); return 0; } -- 2.14.3

