clocksource/drivers/exynos_mct: Fix section mismatch from the module conversion The function register_current_timer_delay() when compiling on ARM32 fails with a section mismatch. That is resulting from the module conversion where the function exynos4_clocksource_init() is called from mct_init_dt(). This one had its __init annotation removed to for the module loading. Fix this by adding the __init_or_module annotation for the functions: - mct_init_dt() - mct_init_spi() - mct_init_dt() Compiled on ARM32 + MODULES=no, ARM64 + MODULES=yes, ARM64 + MODULES=no Link: https://lore.kernel.org/r/20250715121834.2059191-1-daniel.lezcano@linaro.org Reviewed-by: Will McVicker <willmcvicker@google.com> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c index 5075ebe..80d263e 100644 --- a/drivers/clocksource/exynos_mct.c +++ b/drivers/clocksource/exynos_mct.c
@@ -657,7 +657,7 @@ static int exynos4_timer_interrupts(struct device_node *np, return err; } -static int mct_init_dt(struct device_node *np, unsigned int int_type) +static __init_or_module int mct_init_dt(struct device_node *np, unsigned int int_type) { bool frc_shared = of_property_read_bool(np, "samsung,frc-shared"); u32 local_idx[MCT_NR_LOCAL] = {0}; @@ -705,12 +705,12 @@ static int mct_init_dt(struct device_node *np, unsigned int int_type) return exynos4_clockevent_init(); } -static int mct_init_spi(struct device_node *np) +static __init_or_module int mct_init_spi(struct device_node *np) { return mct_init_dt(np, MCT_INT_SPI); } -static int mct_init_ppi(struct device_node *np) +static __init_or_module int mct_init_ppi(struct device_node *np) { return mct_init_dt(np, MCT_INT_PPI); }