Skip to content

Commit 384fbb9

Browse files
Tinabr7Stefan Richter
authored and
Stefan Richter
committed
firewire: nosy: Replace timeval with timespec64
'struct timeval' uses a 32 bit field for its 'seconds' value which will overflow in year 2038 and beyond. This patch replaces the use of timeval in nosy.c with timespec64 which doesn't suffer from y2038 issue. The code is correct as is - since it is only using the microseconds portion of timeval. However, this patch does the replacement as part of a larger effort to remove all instances of 'struct timeval' from the kernel (that would help identify cases where the code is actually broken). Signed-off-by: Tina Ruchandani <ruchandani.tina@gmail.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
1 parent e38e5ce commit 384fbb9

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

drivers/firewire/nosy.c

+5-3
Original file line numberDiff line numberDiff line change
@@ -446,14 +446,16 @@ static void
446446
bus_reset_irq_handler(struct pcilynx *lynx)
447447
{
448448
struct client *client;
449-
struct timeval tv;
449+
struct timespec64 ts64;
450+
u32 timestamp;
450451

451-
do_gettimeofday(&tv);
452+
ktime_get_real_ts64(&ts64);
453+
timestamp = ts64.tv_nsec / NSEC_PER_USEC;
452454

453455
spin_lock(&lynx->client_list_lock);
454456

455457
list_for_each_entry(client, &lynx->client_list, link)
456-
packet_buffer_put(&client->buffer, &tv.tv_usec, 4);
458+
packet_buffer_put(&client->buffer, &timestamp, 4);
457459

458460
spin_unlock(&lynx->client_list_lock);
459461
}

0 commit comments

Comments
 (0)