On Thursday 22 October 2015 04:05:00 Amitoj Kaur Chawla wrote: > 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 <amitoj1...@gmail.com>
Reviewed-by: Arnd Bergmann <a...@arndb.de> (adding the y2038 mailing list as well) > Changes in v2: > -Replaced timespec with timspec64 > -Modified commit message > -Used ktime_get_real_ts64() instead of getnstimeofday64() > > drivers/firewire/nosy.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/firewire/nosy.c b/drivers/firewire/nosy.c > index 76b2d39..8a46077 100644 > --- a/drivers/firewire/nosy.c > +++ b/drivers/firewire/nosy.c > @@ -33,6 +33,7 @@ > #include <linux/sched.h> /* required for linux/wait.h */ > #include <linux/slab.h> > #include <linux/spinlock.h> > +#include <linux/time64.h> > #include <linux/timex.h> > #include <linux/uaccess.h> > #include <linux/wait.h> > @@ -413,17 +414,18 @@ static void > packet_irq_handler(struct pcilynx *lynx) > { > struct client *client; > - u32 tcode_mask, tcode; > + u32 tcode_mask, tcode, timestamp; > size_t length; > - struct timeval tv; > + struct timespec64 ts64; > > /* FIXME: Also report rcv_speed. */ > > length = __le32_to_cpu(lynx->rcv_pcl->pcl_status) & 0x00001fff; > tcode = __le32_to_cpu(lynx->rcv_buffer[1]) >> 4 & 0xf; > > - do_gettimeofday(&tv); > - lynx->rcv_buffer[0] = (__force __le32)tv.tv_usec; > + ktime_get_real_ts64(&ts64); > + timestamp = ts64.tv_nsec / NSEC_PER_USEC; > + lynx->rcv_buffer[0] = (__force __le32)timestamp; > > if (length == PHY_PACKET_SIZE) > tcode_mask = 1 << TCODE_PHY_PACKET; > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/