On Oct 22 Arnd Bergmann wrote:
> 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 <[email protected]>
> 
> Reviewed-by: Arnd Bergmann <[email protected]>
> 
> (adding the y2038 mailing list as well)

Committed to linux1394.git.
Arnd, do you have special y2038 plans that make it desirable to have this
merged before v4.4?  Otherwise I would submit it for v4.5-rc1.

> > 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;
> > 
> 

-- 
Stefan Richter
-=====-===== =-== --=-=
http://arcgraph.de/sr/

Attachment: pgpk2T5ScpSNO.pgp
Description: OpenPGP digital signature

Reply via email to