On Thu, Jan 25, 2018 at 9:05 AM, Baolin Wang <baolin.w...@linaro.org> wrote: > @@ -2554,7 +2554,7 @@ static int kdb_summary(int argc, const char **argv) > kdb_printf("domainname %s\n", init_uts_ns.name.domainname); > kdb_printf("ccversion %s\n", __stringify(CCVERSION)); > > - now = __current_kernel_time(); > + now = current_kernel_time64(); > kdb_gmtime(&now, &tm); > kdb_printf("date %04d-%02d-%02d %02d:%02d:%02d " > "tz_minuteswest %d\n",
Thanks for picking this one up again, we should find a permanent solution here. Unfortunately you patch is incorrect, as we cannot safely call current_kernel_time64() from NMI context. The __ prefix on __current_kernel_time() indicates that this is a special call that intentionally doesn't read the hardware time to avoid taking locks that might already be held in the context from which we entered the debugger. See https://patchwork.kernel.org/patch/10002097/ for my earlier patch. > @@ -2521,8 +2521,8 @@ static void kdb_gmtime(struct timespec *tv, struct > kdb_tm *tm) > */ > static void kdb_sysinfo(struct sysinfo *val) > { > - struct timespec uptime; > - ktime_get_ts(&uptime); > + struct timespec64 uptime; > + ktime_get_ts64(&uptime); > memset(val, 0, sizeof(*val)); > val->uptime = uptime.tv_sec; > val->loads[0] = avenrun[0]; This function appears to have the same problem, except that it is a preexisting issue in this case. I had not noticed this earlier, but we must fix it in a similar manner to the other one. Arnd