aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire
diff options
context:
space:
mode:
authorAmitoj Kaur Chawla <amitoj1606@gmail.com>2015-10-21 18:35:00 -0400
committerStefan Richter <stefanr@s5r6.in-berlin.de>2015-11-05 08:21:22 -0500
commit2ae4b6b20e2004dccf80d804ae52b073377c2f5b (patch)
tree3a4efb7ec6f60d06c1a11b5217badbd19d433a9f /drivers/firewire
parent100ceb66d5c40cc0c7018e06a9474302470be73c (diff)
firewire: nosy: Replace timeval with timespec64
32 bit systems using 'struct timeval' will break in the year 2038, so we replace the code appropriately. However, this driver is not broken in 2038 since we are using only the microseconds portion of the current time. This patch replaces timeval with timespec64. Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire')
-rw-r--r--drivers/firewire/nosy.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/firewire/nosy.c b/drivers/firewire/nosy.c
index 76b2d390f6ec..8a46077129ac 100644
--- a/drivers/firewire/nosy.c
+++ b/drivers/firewire/nosy.c
@@ -33,6 +33,7 @@
33#include <linux/sched.h> /* required for linux/wait.h */ 33#include <linux/sched.h> /* required for linux/wait.h */
34#include <linux/slab.h> 34#include <linux/slab.h>
35#include <linux/spinlock.h> 35#include <linux/spinlock.h>
36#include <linux/time64.h>
36#include <linux/timex.h> 37#include <linux/timex.h>
37#include <linux/uaccess.h> 38#include <linux/uaccess.h>
38#include <linux/wait.h> 39#include <linux/wait.h>
@@ -413,17 +414,18 @@ static void
413packet_irq_handler(struct pcilynx *lynx) 414packet_irq_handler(struct pcilynx *lynx)
414{ 415{
415 struct client *client; 416 struct client *client;
416 u32 tcode_mask, tcode; 417 u32 tcode_mask, tcode, timestamp;
417 size_t length; 418 size_t length;
418 struct timeval tv; 419 struct timespec64 ts64;
419 420
420 /* FIXME: Also report rcv_speed. */ 421 /* FIXME: Also report rcv_speed. */
421 422
422 length = __le32_to_cpu(lynx->rcv_pcl->pcl_status) & 0x00001fff; 423 length = __le32_to_cpu(lynx->rcv_pcl->pcl_status) & 0x00001fff;
423 tcode = __le32_to_cpu(lynx->rcv_buffer[1]) >> 4 & 0xf; 424 tcode = __le32_to_cpu(lynx->rcv_buffer[1]) >> 4 & 0xf;
424 425
425 do_gettimeofday(&tv); 426 ktime_get_real_ts64(&ts64);
426 lynx->rcv_buffer[0] = (__force __le32)tv.tv_usec; 427 timestamp = ts64.tv_nsec / NSEC_PER_USEC;
428 lynx->rcv_buffer[0] = (__force __le32)timestamp;
427 429
428 if (length == PHY_PACKET_SIZE) 430 if (length == PHY_PACKET_SIZE)
429 tcode_mask = 1 << TCODE_PHY_PACKET; 431 tcode_mask = 1 << TCODE_PHY_PACKET;