mmc: sdio: store owner from modules with sdio_register_driver()
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Fri, 29 Mar 2024 17:24:31 +0000 (18:24 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 2 Apr 2024 10:50:14 +0000 (12:50 +0200)
commit94cd1011002ee9aabfd5b7d96b366384b6de3707
tree396957eaef19e55ee6f56612c3068795bf4c68b1
parentf9b17ffcb52307fec34bf613a313ec087347cbb8
mmc: sdio: store owner from modules with sdio_register_driver()

Modules registering driver with sdio_register_driver() might
forget to set .owner field.  The field is used by some of other kernel
parts for reference counting (try_module_get()), so it is expected that
drivers will set it.

Solve the problem by moving this task away from the drivers to the core
code, just like we did for platform_driver in
commit 9447057eaff8 ("platform_device: use a macro instead of
platform_driver_register").

Since many drivers forget to set the .owner, this effectively will fix
them.  Examples of fixed drivers are: ath6kl, b43, btsdio.c, ks7010,
libertas, MediaTek WiFi drivers, Realtek WiFi drivers, rsi, siano,
wilc1000, wl1251 and more.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Link: https://lore.kernel.org/r/20240329-module-owner-sdio-v1-1-e4010b11ccaa@linaro.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/sdio_bus.c
include/linux/mmc/sdio_func.h