1969-12-31T23:59:59 is an error more clear than Invalid argument For example, when the RTC clock is not set, it will print a kernel error log every time someone tries to read the clock: ~ # hwclock -r hwclock: RTC_RD_TIME: Invalid argument It's clear and easy to understand what happened if print 1969-12-31T23:59:59 in this situation: ~ # hwclock -r Wed Dec 31 23:59:59 1969 0.000000 seconds Signed-off-by: Grant Feng <von81@xxxxxxx> --- drivers/rtc/interface.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c index 794a4f036b99..e6b3f4163565 100644 --- a/drivers/rtc/interface.c +++ b/drivers/rtc/interface.c @@ -101,8 +101,20 @@ static int __rtc_read_time(struct rtc_device *rtc, struct rtc_time *tm) rtc_add_offset(rtc, tm); err = rtc_valid_tm(tm); - if (err < 0) + if (err < 0) { dev_dbg(&rtc->dev, "read_time: rtc_time isn't valid\n"); + + tm->tm_sec = 59; + tm->tm_min = 59; + tm->tm_hour = 23; + tm->tm_mday = 31; + tm->tm_mon = 11; + tm->tm_year = 69; + tm->tm_wday = 3; + tm->tm_yday = 365; + tm->tm_isdst = 0; + } + err = 0; } return err; } -- 2.17.1