drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Thu, 2 Nov 2023 16:56:42 +0000 (17:56 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jan 2024 23:35:31 +0000 (15:35 -0800)
[ Upstream commit ce3e112e7ae854249d8755906acc5f27e1542114 ]

With tpd12s015_remove() marked with __exit this function is discarded
when the driver is compiled as a built-in. The result is that when the
driver unbinds there is no cleanup done which results in resource
leakage or worse.

Fixes: cff5e6f7e83f ("drm/bridge: Add driver for the TI TPD12S015 HDMI level shifter")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20231102165640.3307820-19-u.kleine-koenig@pengutronix.de
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/bridge/ti-tpd12s015.c

index e0e0152..b588fea 100644 (file)
@@ -179,7 +179,7 @@ static int tpd12s015_probe(struct platform_device *pdev)
        return 0;
 }
 
-static int __exit tpd12s015_remove(struct platform_device *pdev)
+static int tpd12s015_remove(struct platform_device *pdev)
 {
        struct tpd12s015_device *tpd = platform_get_drvdata(pdev);
 
@@ -197,7 +197,7 @@ MODULE_DEVICE_TABLE(of, tpd12s015_of_match);
 
 static struct platform_driver tpd12s015_driver = {
        .probe  = tpd12s015_probe,
-       .remove = __exit_p(tpd12s015_remove),
+       .remove = tpd12s015_remove,
        .driver = {
                .name   = "tpd12s015",
                .of_match_table = tpd12s015_of_match,