diff options
Diffstat (limited to 'kernel/time')
| -rw-r--r-- | kernel/time/timekeeping.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 5b12292b343a..652e50a9c6ed 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c | |||
| @@ -1188,6 +1188,14 @@ void __weak read_boot_clock(struct timespec *ts) | |||
| 1188 | ts->tv_nsec = 0; | 1188 | ts->tv_nsec = 0; |
| 1189 | } | 1189 | } |
| 1190 | 1190 | ||
| 1191 | void __weak read_boot_clock64(struct timespec64 *ts64) | ||
| 1192 | { | ||
| 1193 | struct timespec ts; | ||
| 1194 | |||
| 1195 | read_boot_clock(&ts); | ||
| 1196 | *ts64 = timespec_to_timespec64(ts); | ||
| 1197 | } | ||
| 1198 | |||
| 1191 | /* | 1199 | /* |
| 1192 | * timekeeping_init - Initializes the clocksource and common timekeeping values | 1200 | * timekeeping_init - Initializes the clocksource and common timekeeping values |
| 1193 | */ | 1201 | */ |
| @@ -1209,8 +1217,7 @@ void __init timekeeping_init(void) | |||
| 1209 | } else if (now.tv_sec || now.tv_nsec) | 1217 | } else if (now.tv_sec || now.tv_nsec) |
| 1210 | persistent_clock_exist = true; | 1218 | persistent_clock_exist = true; |
| 1211 | 1219 | ||
| 1212 | read_boot_clock(&ts); | 1220 | read_boot_clock64(&boot); |
| 1213 | boot = timespec_to_timespec64(ts); | ||
| 1214 | if (!timespec64_valid_strict(&boot)) { | 1221 | if (!timespec64_valid_strict(&boot)) { |
| 1215 | pr_warn("WARNING: Boot clock returned invalid value!\n" | 1222 | pr_warn("WARNING: Boot clock returned invalid value!\n" |
| 1216 | " Check your CMOS/BIOS settings.\n"); | 1223 | " Check your CMOS/BIOS settings.\n"); |
