summaryrefslogtreecommitdiff
path: root/drivers/rtc
diff options
context:
space:
mode:
authorDenis Osterland <Denis.Osterland@diehl.com>2018-03-05 10:43:53 +0000
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2018-03-17 14:20:54 +0100
commit236b7187034e87bd46eb535ab4f276267ef66ee4 (patch)
tree243b57c8a3bb2dc384b3d0ecf25c21ff84540a2e /drivers/rtc
parent9d327c2d929161a6ca4d7ca0672414cc72100659 (diff)
downloadlinux-next-236b7187034e87bd46eb535ab4f276267ef66ee4.tar.gz
rtc: isl1208: switch to rtc_register_device
Fix possible race condition. It is not allowed to return with an error code after RTC is registered. Suggested-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Denis Osterland <Denis.Osterland@diehl.com> Reviewed-by: Michael Grzeschik <m.grzeschik@pengutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r--drivers/rtc/rtc-isl1208.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c
index a13a4ba79004..1a2c38cc0178 100644
--- a/drivers/rtc/rtc-isl1208.c
+++ b/drivers/rtc/rtc-isl1208.c
@@ -635,12 +635,12 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
if (isl1208_i2c_validate_client(client) < 0)
return -ENODEV;
- rtc = devm_rtc_device_register(&client->dev, isl1208_driver.driver.name,
- &isl1208_rtc_ops,
- THIS_MODULE);
+ rtc = devm_rtc_allocate_device(&client->dev);
if (IS_ERR(rtc))
return PTR_ERR(rtc);
+ rtc->ops = &isl1208_rtc_ops;
+
i2c_set_clientdata(client, rtc);
rc = isl1208_i2c_get_sr(client);
@@ -674,7 +674,7 @@ isl1208_probe(struct i2c_client *client, const struct i2c_device_id *id)
}
}
- return 0;
+ return rtc_register_device(rtc);
}
static int