From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933659AbbI3LbM (ORCPT ); Wed, 30 Sep 2015 07:31:12 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:62969 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755994AbbI3L1I (ORCPT ); Wed, 30 Sep 2015 07:27:08 -0400 From: Arnd Bergmann To: netdev@vger.kernel.org Cc: y2038@lists.linaro.org, linux-kernel@vger.kernel.org, "David S. Miller" , Arnd Bergmann , Giuseppe Cavallaro , Richard Cochran Subject: [PATCH 02/12] net: stmmac: avoid using timespec Date: Wed, 30 Sep 2015 13:26:32 +0200 Message-Id: <1443612402-3000775-3-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.1.0.rc2 In-Reply-To: <1443612402-3000775-1-git-send-email-arnd@arndb.de> References: <1443612402-3000775-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:Pno9qOyWwSo1SGnNLCBMaOItBbDN74Koq2piQio+rlytVOwjtId oEhE06JyxPsrVcQSyIIk4td7660KLwknypmUisf8nn1Z2+9i6HqrH0TwDLTZuSgG+zIjGhm mUsZe/4KUUZOwi6OmdavE3z/XcXKE30/X9mMhwcVCDdwNJApbWI7kmtcy+Aa+6d5DCAVW/r Hxek/EOpWzQMy1DNT58dw== X-UI-Out-Filterresults: notjunk:1;V01:K0:4givpQGIWkE=:rJEWmnQ+vd5XMdeF3zCTw+ q/m4I6GHhrQHV6O9y4PnNjxgbgZSWwO3uDbJLFYz/0qh4W8KMMczIN4iMbhGXKHpBx3J4TqaK d6jsTS8x43tsbMxTKlwuw+BNqd2l1oFNtumbjN9zEA4qhRLA1r58iw5PfiFt+qhOCgsB/i28J OkYM/XEkb7OPfB52iogInr83U9WpEUQvT4B7lMK1r45ZfYVvCbSkk9SFuaJ686Vn7hEAe+Og0 RFNPB0t4z+pGMhu32Hxe/s7VE52dpHNvhHPQJPJ9J4WDqP8OBdDXeqDDaMuny1mpJJSRuwQRK n9AoUClHWxN1t/9GfpT194kbPN03ecET+elwvWCYLNK6wjldQaay0MNDmMdcv3bIcvkA4hTD8 zzec2Heibp0lQxIqJeOFMq6HUtbxaxwET2G2zxTmT2+5BJ39wCmMo2DlO1xcV8KfVjOOX3dyc Ysh2kq1Y9m02N+r44B5BcBV6x1CsgS49OmPKL0xxxBhhE7f9bGl/huAjqY2M549mHfF5iqrek w/Co+vG8fIbnYWwK+LKH1rw2cXUYN4LpAw7c9xOtKwuixCDrGQd0ARWErbIRqzqIVcmXSuXnn rBV9d8k3zmD+1e5qGm43hSRlQP4jntAH3xKr107nNLyTt4QkSJg3yYR/cXXypDMyvX+Hff34M xnxBv7eb5fcnc26In9BXeT9xDcoRL60PaAYjThxkE6trLRrv6hkzYXV4B9FFSTwDcUzc= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We want to deprecate the use of 'struct timespec' on 32-bit architectures, as it is will overflow in 2038. The stmmac driver uses it to read the current time, and can simply be changed to use ktime_get_real_ts64() instead. Because of hardware limitations, there is still an overflow in year 2106, which we cannot really avoid, but this documents the overflow. Signed-off-by: Arnd Bergmann Cc: Giuseppe Cavallaro Cc: Richard Cochran --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 925f2f8659b8..83a1db1b53f3 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -424,7 +424,7 @@ static int stmmac_hwtstamp_ioctl(struct net_device *dev, struct ifreq *ifr) { struct stmmac_priv *priv = netdev_priv(dev); struct hwtstamp_config config; - struct timespec now; + struct timespec64 now; u64 temp = 0; u32 ptp_v2 = 0; u32 tstamp_all = 0; @@ -621,8 +621,10 @@ static int stmmac_hwtstamp_ioctl(struct net_device *dev, struct ifreq *ifr) priv->default_addend); /* initialize system time */ - getnstimeofday(&now); - priv->hw->ptp->init_systime(priv->ioaddr, now.tv_sec, + ktime_get_real_ts64(&now); + + /* lower 32 bits of tv_sec are safe until y2106 */ + priv->hw->ptp->init_systime(priv->ioaddr, (u32)now.tv_sec, now.tv_nsec); } -- 2.1.0.rc2