aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc/rtc-tx4939.c
diff options
context:
space:
mode:
authorAlexandre Belloni <alexandre.belloni@bootlin.com>2018-02-12 23:47:58 +0100
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2018-03-01 10:49:35 +0100
commita2fa9b8e5abc7d16d5617996638f796fbd61cbb2 (patch)
tree03683ba79b7311b6bdd6e92ee77722b9302d5422 /drivers/rtc/rtc-tx4939.c
parentrtc: tx4939: switch to rtc_register_device (diff)
downloadlinux-dev-a2fa9b8e5abc7d16d5617996638f796fbd61cbb2.tar.xz
linux-dev-a2fa9b8e5abc7d16d5617996638f796fbd61cbb2.zip
rtc: tx4939: fix possible race condition
The probe function is not allowed to fail after registering the RTC. Call rtc_register_device() at the end. Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'drivers/rtc/rtc-tx4939.c')
-rw-r--r--drivers/rtc/rtc-tx4939.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/rtc/rtc-tx4939.c b/drivers/rtc/rtc-tx4939.c
index 75c3887fbc6c..5a3a6b457b8f 100644
--- a/drivers/rtc/rtc-tx4939.c
+++ b/drivers/rtc/rtc-tx4939.c
@@ -289,12 +289,13 @@ static int __init tx4939_rtc_probe(struct platform_device *pdev)
rtc->ops = &tx4939_rtc_ops;
- ret = rtc_register_device(rtc);
+ ret = sysfs_create_bin_file(&pdev->dev.kobj, &tx4939_rtc_nvram_attr);
if (ret)
return ret;
pdata->rtc = rtc;
- ret = sysfs_create_bin_file(&pdev->dev.kobj, &tx4939_rtc_nvram_attr);
+
+ ret = rtc_register_device(rtc);
return ret;
}