[PATCH v1 3/7] clocksource/drivers/sun5i: Add module owner
William McVicker
willmcvicker at google.com
Tue Jun 3 10:55:14 PDT 2025
On 06/02/2025, Daniel Lezcano wrote:
> The conversion to modules requires a correct handling of the module
> refcount in order to prevent to unload it if it is in use. That is
> especially true with the clockevents where there is no function to
> unregister them.
>
> The core time framework correctly handles the module refcount with the
> different clocksource and clockevents if the module owner is set.
>
> Add the module owner to make sure the core framework will prevent
> stupid things happening when the driver will be converted into a
> module.
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano at linaro.org>
Reviewed-by: Will McVicker <willmcvicker at google.com>
Thanks,
Will
> ---
> drivers/clocksource/timer-sun5i.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/clocksource/timer-sun5i.c b/drivers/clocksource/timer-sun5i.c
> index 6b48a9006444..f827d3f98f60 100644
> --- a/drivers/clocksource/timer-sun5i.c
> +++ b/drivers/clocksource/timer-sun5i.c
> @@ -185,6 +185,7 @@ static int sun5i_setup_clocksource(struct platform_device *pdev,
> cs->clksrc.read = sun5i_clksrc_read;
> cs->clksrc.mask = CLOCKSOURCE_MASK(32);
> cs->clksrc.flags = CLOCK_SOURCE_IS_CONTINUOUS;
> + cs->clksrc.owner = THIS_MODULE;
>
> ret = clocksource_register_hz(&cs->clksrc, rate);
> if (ret) {
> @@ -214,6 +215,7 @@ static int sun5i_setup_clockevent(struct platform_device *pdev,
> ce->clkevt.rating = 340;
> ce->clkevt.irq = irq;
> ce->clkevt.cpumask = cpu_possible_mask;
> + ce->clkevt.owner = THIS_MODULE;
>
> /* Enable timer0 interrupt */
> val = readl(base + TIMER_IRQ_EN_REG);
> --
> 2.43.0
>
More information about the linux-arm-kernel
mailing list