mirror of https://gitee.com/openkylin/linux.git
media: vivid: print time in y2038-safe way
time_to_tm() takes a time_t value that overflows in 2038 on 32-bit systems. time64_to_tm() doesn't have this problem, so let's use that in combination with ktime_get_real_seconds() to read a 64-bit time value. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
d5ac225c7d
commit
41e3308528
|
@ -103,7 +103,7 @@ void vivid_rds_generate(struct vivid_rds_gen *rds)
|
|||
* EN 50067:1998 to convert a UTC date to an RDS Modified
|
||||
* Julian Day.
|
||||
*/
|
||||
time_to_tm(get_seconds(), 0, &tm);
|
||||
time64_to_tm(ktime_get_real_seconds(), 0, &tm);
|
||||
l = tm.tm_mon <= 1;
|
||||
date = 14956 + tm.tm_mday + ((tm.tm_year - l) * 1461) / 4 +
|
||||
((tm.tm_mon + 2 + l * 12) * 306001) / 10000;
|
||||
|
|
|
@ -190,7 +190,7 @@ static void vivid_vbi_gen_set_time_of_day(u8 *packet)
|
|||
struct tm tm;
|
||||
u8 checksum, i;
|
||||
|
||||
time_to_tm(get_seconds(), 0, &tm);
|
||||
time64_to_tm(ktime_get_real_seconds(), 0, &tm);
|
||||
packet[0] = calc_parity(0x07);
|
||||
packet[1] = calc_parity(0x01);
|
||||
packet[2] = calc_parity(0x40 | tm.tm_min);
|
||||
|
|
Loading…
Reference in New Issue