clocksource/drivers/sh_cmt: Mark driver as non-removable
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Mon, 23 Jan 2023 22:02:21 +0000 (23:02 +0100)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Mon, 13 Feb 2023 12:10:17 +0000 (13:10 +0100)
The comment in the remove callback suggests that the driver is not
supposed to be unbound. However returning an error code in the remove
callback doesn't accomplish that. Instead set the suppress_bind_attrs
property (which makes it impossible to unbind the driver via sysfs).
The only remaining way to unbind a sh_cmt device would be module
unloading, but that doesn't apply here, as the driver cannot be built as
a module.

Also drop the useless remove callback.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20230123220221.48164-1-u.kleine-koenig@pengutronix.de
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/clocksource/sh_cmt.c

index 7b952aa52c0b99ea88a283af115bd5606b52e2e6..8b2e079d9df2a2dfa05c5f8aeb89cbaf9b0f8560 100644 (file)
@@ -1145,17 +1145,12 @@ static int sh_cmt_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int sh_cmt_remove(struct platform_device *pdev)
-{
-       return -EBUSY; /* cannot unregister clockevent and clocksource */
-}
-
 static struct platform_driver sh_cmt_device_driver = {
        .probe          = sh_cmt_probe,
-       .remove         = sh_cmt_remove,
        .driver         = {
                .name   = "sh_cmt",
                .of_match_table = of_match_ptr(sh_cmt_of_table),
+               .suppress_bind_attrs = true,
        },
        .id_table       = sh_cmt_id_table,
 };