Message ID | 1427576976-22353-1-git-send-email-aaro.koskinen@iki.fi |
---|---|
State | Accepted |
Headers | show |
On 28/03/2015 at 23:09:34 +0200, Aaro Koskinen wrote : > In some error cases RTC name is used before it is initialized: > > rtc-rs5c372 0-0032: clock needs to be set > rtc-rs5c372 0-0032: rs5c372b found, 24hr, driver version 0.6 > rtc (null): read_time: fail to read > rtc-rs5c372 0-0032: rtc core: registered rtc-rs5c372 as rtc0 > > Fix by initializing the name early. > > Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> > --- > drivers/rtc/class.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c > index 472a5ad..014ecbc 100644 > --- a/drivers/rtc/class.c > +++ b/drivers/rtc/class.c > @@ -225,15 +225,15 @@ struct rtc_device *rtc_device_register(const char *name, struct device *dev, > rtc->pie_timer.function = rtc_pie_update_irq; > rtc->pie_enabled = 0; > > + strlcpy(rtc->name, name, RTC_DEVICE_NAME_SIZE); > + dev_set_name(&rtc->dev, "rtc%d", id); > + > /* Check to see if there is an ALARM already set in hw */ > err = __rtc_read_alarm(rtc, &alrm); > > if (!err && !rtc_valid_tm(&alrm.time)) > rtc_initialize_alarm(rtc, &alrm); > > - strlcpy(rtc->name, name, RTC_DEVICE_NAME_SIZE); > - dev_set_name(&rtc->dev, "rtc%d", id); > - > rtc_dev_prepare(rtc); > > err = device_register(&rtc->dev); > -- > 2.2.0 >
diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c index 472a5ad..014ecbc 100644 --- a/drivers/rtc/class.c +++ b/drivers/rtc/class.c @@ -225,15 +225,15 @@ struct rtc_device *rtc_device_register(const char *name, struct device *dev, rtc->pie_timer.function = rtc_pie_update_irq; rtc->pie_enabled = 0; + strlcpy(rtc->name, name, RTC_DEVICE_NAME_SIZE); + dev_set_name(&rtc->dev, "rtc%d", id); + /* Check to see if there is an ALARM already set in hw */ err = __rtc_read_alarm(rtc, &alrm); if (!err && !rtc_valid_tm(&alrm.time)) rtc_initialize_alarm(rtc, &alrm); - strlcpy(rtc->name, name, RTC_DEVICE_NAME_SIZE); - dev_set_name(&rtc->dev, "rtc%d", id); - rtc_dev_prepare(rtc); err = device_register(&rtc->dev);
In some error cases RTC name is used before it is initialized: rtc-rs5c372 0-0032: clock needs to be set rtc-rs5c372 0-0032: rs5c372b found, 24hr, driver version 0.6 rtc (null): read_time: fail to read rtc-rs5c372 0-0032: rtc core: registered rtc-rs5c372 as rtc0 Fix by initializing the name early. Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> --- drivers/rtc/class.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)