Messages in this thread | | | Date | Thu, 5 Nov 2015 14:34:48 +0100 | From | Stefan Richter <> | Subject | Re: [Outreachy kernel] [PATCH v2] firewire: Replace timeval with timespec64 |
| |
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 <amitoj1606@gmail.com> > > Reviewed-by: Arnd Bergmann <arnd@arndb.de> > > (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/ [unhandled content-type:application/pgp-signature] | |