Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b8f10da authored by Yongbae Park's avatar Yongbae Park Committed by Daniel Lezcano
Browse files

clocksource: efm32: Fix a NULL pointer dereference



The initialisation of the efm32 clocksource first sets up the irq and only
after that initialises the data needed for irq handling. In case this
initialisation is delayed the irq handler would dereference a NULL pointer.

I'm not aware of anything that could delay the process in such a way, but it's
better to be safe than sorry, so setup the irq only when the clock event device
is ready.

Cc: stable@vger.kernel.org
Acked-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarYongbae Park <yongbae2@gmail.com>
Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
parent 13a7a6ac
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -225,12 +225,12 @@ static int __init efm32_clockevent_init(struct device_node *np)
	clock_event_ddata.base = base;
	clock_event_ddata.base = base;
	clock_event_ddata.periodic_top = DIV_ROUND_CLOSEST(rate, 1024 * HZ);
	clock_event_ddata.periodic_top = DIV_ROUND_CLOSEST(rate, 1024 * HZ);


	setup_irq(irq, &efm32_clock_event_irq);

	clockevents_config_and_register(&clock_event_ddata.evtdev,
	clockevents_config_and_register(&clock_event_ddata.evtdev,
					DIV_ROUND_CLOSEST(rate, 1024),
					DIV_ROUND_CLOSEST(rate, 1024),
					0xf, 0xffff);
					0xf, 0xffff);


	setup_irq(irq, &efm32_clock_event_irq);

	return 0;
	return 0;


err_get_irq:
err_get_irq: