summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorDavid Yu <davyu@nvidia.com>2014-01-20 15:27:18 +0900
committerHarry Hong <hhong@nvidia.com>2014-01-20 16:52:18 -0800
commit5c516f04999c8c6a23e42af2ab645f610edae0d0 (patch)
tree5cbdceb367854d40bd279e6f7103b0c8e879b5f4 /kernel
parent2c0336c6c590c27f90b8c2a6e32b5687f7098db9 (diff)
printk: apply timezone in the kernel log time
- fix recursion bug - show timezone applied log since logcat shows it Change-Id: If25195ddd729d9897494aaa846525f25df1c872d Signed-off-by: David Yu <davyu@nvidia.com> Reviewed-on: http://git-master/r/357582 Reviewed-by: Harry Hong <hhong@nvidia.com> Tested-by: Harry Hong <hhong@nvidia.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/printk.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/kernel/printk.c b/kernel/printk.c
index b477c9d63a05..3384d363bfae 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -999,27 +999,29 @@ asmlinkage int vprintk(const char *fmt, va_list args)
/* Add the current time stamp */
char tbuf[50], *tp;
unsigned tlen;
- unsigned long long t;
- unsigned long nanosec_rem;
- struct timespec ts;
- struct rtc_time tm;
- t = cpu_clock(printk_cpu);
- nanosec_rem = do_div(t, 1000000000);
+ if (system_state == SYSTEM_BOOTING) {
+ unsigned long long t;
+ unsigned long nanosec_rem;
- if (t < 30) {
+ t = cpu_clock(printk_cpu);
+ nanosec_rem = do_div(t, 1000000000);
tlen = sprintf(tbuf, "[%5lu.%06lu] ",
(unsigned long) t,
nanosec_rem / 1000);
} else {
- getnstimeofday(&ts);
- rtc_time_to_tm(ts.tv_sec, &tm);
- tlen = sprintf(tbuf,
- "[%02d-%02d %02d:%02d:%02d.%03d] ",
- tm.tm_mon + 1,
- tm.tm_mday, tm.tm_hour,
- tm.tm_min, tm.tm_sec,
- (int)ts.tv_nsec/1000000);
+ struct timespec ts;
+ struct tm tm;
+
+ ts = __current_kernel_time();
+ time_to_tm(ts.tv_sec, -sys_tz.tz_minuteswest * 60, &tm);
+ tlen = sprintf(tbuf, "[%02d-%02d %02d:%02d:%02d.%03lu] ",
+ tm.tm_mon+1,
+ tm.tm_mday,
+ tm.tm_hour,
+ tm.tm_min,
+ tm.tm_sec,
+ (unsigned long) ts.tv_nsec/1000000);
}
for (tp = tbuf; tp < tbuf + tlen; tp++)