Arnd Bergmann <arnd@xxxxxxxx> writes: > Jeff Moyer looked up the blktrace source to see if an overflow might > happen. The situation is as follows: > > - The time stamp is not used by the program itself, only for > printing human-readable output. > - We normally don't print the timestamp at all, except when an > undocumented format option is given to blkparse. > - The assumption is that no other program besides blktrace > even looks at this data, but of course cannot be sure. > - On 64-bit systems, the time gets read from the unsigned > 32-bit kernel structure into a timespec in a way that will > work correctly until 2106, so there is no 2038 problem. > - On 32-bit systems that have a new (future) libc build with > a 64-bit time_t type, it will work the same way. > - On current 32-bit systems, the time is passed into localtime(), > at which point the overflow happens, but those systems are > already broken. > > In short, it's good enough for now, so update the comment. > > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > Fixes: 59a37f8baeb2 ("blktrace: avoid using timespec") > Cc: Jeff Moyer <jmoyer@xxxxxxxxxx> Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx> > --- > kernel/trace/blktrace.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c > index b0816e4a61a5..4a3666779589 100644 > --- a/kernel/trace/blktrace.c > +++ b/kernel/trace/blktrace.c > @@ -131,7 +131,8 @@ static void trace_note_time(struct blk_trace *bt) > unsigned long flags; > u32 words[2]; > > - /* need to check user space to see if this breaks in y2038 or y2106 */ > + /* blktrace converts this to a time_t and will overflow in > + 2106, not in 2038 */ > ktime_get_real_ts64(&now); > words[0] = (u32)now.tv_sec; > words[1] = now.tv_nsec; -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html