mfd: menelaus: Fix possible race condition and leak
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Sun, 9 Sep 2018 20:48:58 +0000 (22:48 +0200)
committerLee Jones <lee.jones@linaro.org>
Tue, 11 Sep 2018 15:40:21 +0000 (16:40 +0100)
commit9612f8f503804d2fd2f63aa6ba1e58bba4612d96
tree2e5fa8e95045ecc72252dbe21a67c4837b6bfc82
parent5b394b2ddf0347bef56e50c69a58773c94343ff3
mfd: menelaus: Fix possible race condition and leak

The IRQ work is added before the struct rtc is allocated and registered,
but this struct is used in the IRQ handler. This may lead to a NULL pointer
dereference.

Switch to devm_rtc_allocate_device/rtc_register_device to allocate the rtc
before calling menelaus_add_irq_work.

Also, this solves a possible leak as the RTC is never released.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/menelaus.c