From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752335AbbIKJdO (ORCPT ); Fri, 11 Sep 2015 05:33:14 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:56060 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751730AbbIKJdM (ORCPT ); Fri, 11 Sep 2015 05:33:12 -0400 From: Arnd Bergmann To: netdev@vger.kernel.org Cc: y2038@lists.linaro.org, Yuval Mintz , Ariel Elior , "David S. Miller" , linux-kernel@vger.kernel.org Subject: [PATCH] bnx2x: use ktime_get_seconds() for timestamp Date: Fri, 11 Sep 2015 11:33:01 +0200 Message-ID: <2387233.xmDni0GXyg@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:XiNz0Wsg4FnjC2xmVG7iXq7yIubOaNM+f3hTo7fEFhrfW/CQsq2 2gPRhXniPrAQUOHCf4HvTKPVvf52EvS/vBnBXfCEEiEnCftL43noPFqa6k/KRJcinms31iV lfAM6UQwZydL8Ta58y7Q+l+M222VomwwEkotBYeKAjT1NT2Dk5inP3caKGi3+JhNNPen2os QGA8hLVRla9I7FGD4rvnQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:G31p5Jy9qBE=:np20mlF/9Qw/HscCNPaHPQ yTtujVoMF0qV1cM/CkpTyZZY9bha3lghxYpP2h1oofqYXifkL56kuUERhTv0G7zDUiup/PLNM XVbzGsOTOVXjAGMABTrj+FSOFlEBdIzu4zv8mOJbLK4LoVUXFYjl0WdqcvMT9QfBYNZNkgKWN iKKb5MPWiXsE15eCJHHc8NDxTSQaW/pDJxvnAR92pGdS5JuoZQLqYo/9BfhusuOj+aGQ6x8ub BJ63HLmgkWSnvHWqnzd/klNkseB7YVhpQNR02/9Rz8h9IIQai4T6ZiNkWHO4EKy6UzmrOh0k2 H0oztZIWC1Vum8ZilW58Y5hWDxlr1YbzT4bf0HbfpQpMfk5YH/FAW5jybKmsj8tCMppSTclUU JbghAMes5K+UnOdlmvLztc4+Yj6JQ6xpKhJDTXdM6uAJNsNkkEWjQONBCA4CrhHFDoMUr91M+ 8lU/3bgOCBK6V/1FLABF4LJe+PlZeIowJltBg/mdZTgpfgALgm7siWurbZBTumrUoGH6YxUz1 4Ypt6qlDMeK8NeQvBmzdhKY7wM2e7IGsSvbWHLIXs8KacV6gqfnuhODwRM0CGXiy+LYaE6Sva 8JN8MxLkxVT6fwVMSc2bIPL5Rgk/eVBn/dxW/O4ZFu/8xK9AISg6m4FTKNvfeCmZRN+cS4D/7 P+GzushwSnT4rKSkM+8469Dv4FWCfOvISS1NewohiJD/0k1hxWU0h905vGuYA9rEnX59xQAVI nKsHp7EpRpWM1yxp Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org commit c48f350ff5e7 "bnx2x: Add MFW dump support" added the bnx2x_update_mfw_dump() function that reads the current time and stores it in a 32-bit field that gets passed into a buffer in a fixed format. This is potentially broken when the epoch overflows in 2038, and otherwise overflows in 2106. As we're trying to avoid uses of struct timeval for this reason, I noticed the addition of this function, and tried to rewrite it in a way that is more explicit about the overflow and that will keep working once we deprecate struct timeval. I assume that it is not possible to change the ABI any more, otherwise we should try to use a 64-bit field for the seconds right away. Signed-off-by: Arnd Bergmann Cc: Yuval Mintz Cc: Ariel Elior --- diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index e3da2bddf143..89a174fa1300 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c @@ -3705,16 +3705,14 @@ out: void bnx2x_update_mfw_dump(struct bnx2x *bp) { - struct timeval epoc; u32 drv_ver; u32 valid_dump; if (!SHMEM2_HAS(bp, drv_info)) return; - /* Update Driver load time */ - do_gettimeofday(&epoc); - SHMEM2_WR(bp, drv_info.epoc, epoc.tv_sec); + /* Update Driver load time, possibly broken in y2038 */ + SHMEM2_WR(bp, drv_info.epoc, (u32)ktime_get_real_seconds()); drv_ver = bnx2x_update_mng_version_utility(DRV_MODULE_VERSION, true); SHMEM2_WR(bp, drv_info.drv_ver, drv_ver);