mmc: davinci: Don't strip remove function when driver is builtin
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Sun, 24 Mar 2024 11:40:17 +0000 (12:40 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 2 Apr 2024 10:21:39 +0000 (12:21 +0200)
commit55c421b364482b61c4c45313a535e61ed5ae4ea3
tree7f9c7185c74fc14c2a36668c2a8693461682f1db
parent53ab7f7fe412abd294262e86459f17d965cd65b9
mmc: davinci: Don't strip remove function when driver is builtin

Using __exit for the remove function results in the remove callback being
discarded with CONFIG_MMC_DAVINCI=y. When such a device gets unbound (e.g.
using sysfs or hotplug), the driver is just removed without the cleanup
being performed. This results in resource leaks. Fix it by compiling in the
remove callback unconditionally.

This also fixes a W=1 modpost warning:

WARNING: modpost: drivers/mmc/host/davinci_mmc: section mismatch in
reference: davinci_mmcsd_driver+0x10 (section: .data) ->
davinci_mmcsd_remove (section: .exit.text)

Fixes: b4cff4549b7a ("DaVinci: MMC: MMC/SD controller driver for DaVinci family")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240324114017.231936-2-u.kleine-koenig@pengutronix.de
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/davinci_mmc.c