printk: fix incorrect length from print_time() when seconds > 99999
[sfrench/cifs-2.6.git] / kernel / printk.c
index 19c0d7bcf24a77e0f6de246a30fab029cf3a30cc..357f714ddd4983e75e3816577b237d8c8d38bd3f 100644 (file)
@@ -870,10 +870,11 @@ static size_t print_time(u64 ts, char *buf)
        if (!printk_time)
                return 0;
 
+       rem_nsec = do_div(ts, 1000000000);
+
        if (!buf)
-               return 15;
+               return snprintf(NULL, 0, "[%5lu.000000] ", (unsigned long)ts);
 
-       rem_nsec = do_div(ts, 1000000000);
        return sprintf(buf, "[%5lu.%06lu] ",
                       (unsigned long)ts, rem_nsec / 1000);
 }