Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1236192 > unrolled thread

[PATCH 01/12] net: fec: avoid timespec use

Started byArnd Bergmann <arnd@arndb.de>
First post2015-09-30 13:30 +0200
Last post2015-10-01 21:10 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 01/12] net: fec: avoid timespec use Arnd Bergmann <arnd@arndb.de> - 2015-09-30 13:30 +0200
    Re: [PATCH 01/12] net: fec: avoid timespec use Richard Cochran <richardcochran@gmail.com> - 2015-10-01 21:10 +0200

#1236192 — [PATCH 01/12] net: fec: avoid timespec use

FromArnd Bergmann <arnd@arndb.de>
Date2015-09-30 13:30 +0200
Subject[PATCH 01/12] net: fec: avoid timespec use
Message-ID<qenKb-3xS-41@gated-at.bofh.it>
The fec_ptp_enable_pps uses an open-coded implementation of ns_to_timespec,
which will be removed eventually as it is not y2038-safe on 32-bit
architectures. Two more instances of the same code in this file were
already converted to use the safe ns_to_timespec64 in commit 6630514fcee
("ptp: fec: use helpers for converting ns to timespec"), this changes
the last one as well.

The seconds portion here is actually unused and we could just remove the
timespec variable, but using ns_to_timespec64 can still be better as the
implementation can be hand-optimized in the future.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Fugang Duan <b38611@freescale.com>
Cc: Luwei Zhou <b45643@freescale.com>
Cc: Frank Li <Frank.Li@freescale.com>
---
 drivers/net/ethernet/freescale/fec_ptp.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fec_ptp.c b/drivers/net/ethernet/freescale/fec_ptp.c
index 1543cf0e8ef6..f9e74461bdc0 100644
--- a/drivers/net/ethernet/freescale/fec_ptp.c
+++ b/drivers/net/ethernet/freescale/fec_ptp.c
@@ -112,9 +112,8 @@ static int fec_ptp_enable_pps(struct fec_enet_private *fep, uint enable)
 	unsigned long flags;
 	u32 val, tempval;
 	int inc;
-	struct timespec ts;
+	struct timespec64 ts;
 	u64 ns;
-	u32 remainder;
 	val = 0;
 
 	if (!(fep->hwts_tx_en || fep->hwts_rx_en)) {
@@ -163,8 +162,7 @@ static int fec_ptp_enable_pps(struct fec_enet_private *fep, uint enable)
 		tempval = readl(fep->hwp + FEC_ATIME);
 		/* Convert the ptp local counter to 1588 timestamp */
 		ns = timecounter_cyc2time(&fep->tc, tempval);
-		ts.tv_sec = div_u64_rem(ns, 1000000000ULL, &remainder);
-		ts.tv_nsec = remainder;
+		ts = ns_to_timespec64(ns);
 
 		/* The tempval is  less than 3 seconds, and  so val is less than
 		 * 4 seconds. No overflow for 32bit calculation.
-- 
2.1.0.rc2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1237664

FromRichard Cochran <richardcochran@gmail.com>
Date2015-10-01 21:10 +0200
Message-ID<qeRoS-56r-21@gated-at.bofh.it>
In reply to#1236192
On Wed, Sep 30, 2015 at 01:26:31PM +0200, Arnd Bergmann wrote:
> The fec_ptp_enable_pps uses an open-coded implementation of ns_to_timespec,
> which will be removed eventually as it is not y2038-safe on 32-bit
> architectures. Two more instances of the same code in this file were
> already converted to use the safe ns_to_timespec64 in commit 6630514fcee
> ("ptp: fec: use helpers for converting ns to timespec"), this changes
> the last one as well.
> 
> The seconds portion here is actually unused and we could just remove the
> timespec variable, but using ns_to_timespec64 can still be better as the
> implementation can be hand-optimized in the future.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Richard Cochran <richardcochran@gmail.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web