From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751987AbdKDV1o (ORCPT ); Sat, 4 Nov 2017 17:27:44 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:64789 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751474AbdKDV1n (ORCPT ); Sat, 4 Nov 2017 17:27:43 -0400 From: Arnd Bergmann To: Russell Currey , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Cc: y2038@lists.linaro.org, Arnd Bergmann , Alexey Kardashevskiy , Andrew Donnellan , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH] powerpc: eeh: stop using do_gettimeofday() Date: Sat, 4 Nov 2017 22:26:52 +0100 Message-Id: <20171104212727.3228606-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:v9PWvgq+Dc3Aj7idKk9TVW8MU6WmY5HaLJsXMBWHoXCaqs1nuXE Skv36er204zZbfVuGiiUIfz8GFPuLQh/bxTQNIJqe5WmNeYUc2jrcSiJBwmvX8gwLS+rq1R i/PBRcQ3NNcXXm6yJDjJFq+9N4h5O6YiSkbMLlTe24Oogfo6BcB9HljUO4KWcK5xUJHg7iw +PcTZyH6Lf6Vqp/1dq50Q== X-UI-Out-Filterresults: notjunk:1;V01:K0:nV7CwJw2k60=:cXioMaVdb9HwspXeW686Kd qog++Q2hmy+NCx8hQSbSy0Uh2SpsDL1qPnYVoQQVw9+bs4TbOwC98Vz0Ih76u7MHAMu2Vo3yS yti1/wC4QoAWzFoP4ek0ZcfwwpfGGAdKbu6oumZfEnhBgLZeWxYemxos3Jc5j/orAFug4ZRIj fM5aOWvuphfqNvm7Gp1zXDq5kc4E+Px3iv7ZMT7VyLB2x+kDevkye79S+8Dp/vvsbA2lQmE1O eMEfLcYqYbtX9f+Qd+MaavjJnOkNVba1g0j+fTmiJHjAdPE+KynYtHR2X4+1lzS8FD/xhoq1c Kv8aZoIjkp0MJRL7MeEykOU0qGY0QfoP2H17s8oVwq1LNmXSHdbL3WA7blMcKkvtfo+d9TD+v kgMqPYa6CnpkuKSzT5r4qK0JrQfiH0x50gaj3ueXgSQ2Bie9ysP+Ymdv2mv6obJdF3hnwt2eK uOS14T07CSy3mvntoRXpxBF9ShSiIVtATCq+L8U2X/VRDwWOpu5HrWcyEzygCy3uh8Auhn8Em E3Ro0RWHwEec5Byai9pUlqHFX8dVyweZOKgt1We5bZ8HOvQ40/Unn4NT3kGiqKEc47/FUTuTy ZFWngdUwDgrr87lY0ABzfqcbiZ/3Gds+hR4ShBc2DGSY444V3cP7jv7TU52/35e+XvCDz3yIx EaBZg2c5ow7T+JSIHg0B68FX4ngsFtfdEy0AI/+DXnj/yNllLOqrG0PCC2hSWVOnKbeKQooju BH2sIpqOzzashAZxM6icM2L8WoYsBKqH/+c2qw== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This interface is inefficient and deprecated because of the y2038 overflow. ktime_get_seconds() is an appropriate replacement here, since it has sufficient granularity but is more efficient and uses monotonic time. Signed-off-by: Arnd Bergmann --- arch/powerpc/include/asm/eeh.h | 2 +- arch/powerpc/kernel/eeh_driver.c | 2 +- arch/powerpc/kernel/eeh_pe.c | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/arch/powerpc/include/asm/eeh.h b/arch/powerpc/include/asm/eeh.h index cd1df96335e5..5161c37dd039 100644 --- a/arch/powerpc/include/asm/eeh.h +++ b/arch/powerpc/include/asm/eeh.h @@ -93,7 +93,7 @@ struct eeh_pe { struct pci_bus *bus; /* Top PCI bus for bus PE */ int check_count; /* Times of ignored error */ int freeze_count; /* Times of froze up */ - struct timeval tstamp; /* Time on first-time freeze */ + time64_t tstamp; /* Time on first-time freeze */ int false_positives; /* Times of reported #ff's */ atomic_t pass_dev_cnt; /* Count of passed through devs */ struct eeh_pe *parent; /* Parent PE */ diff --git a/arch/powerpc/kernel/eeh_driver.c b/arch/powerpc/kernel/eeh_driver.c index 4e1b433f6cb5..4f71e4c9beb7 100644 --- a/arch/powerpc/kernel/eeh_driver.c +++ b/arch/powerpc/kernel/eeh_driver.c @@ -623,7 +623,7 @@ static int eeh_reset_device(struct eeh_pe *pe, struct pci_bus *bus, struct eeh_rmv_data *rmv_data) { struct pci_bus *frozen_bus = eeh_pe_bus_get(pe); - struct timeval tstamp; + time64_t tstamp; int cnt, rc; struct eeh_dev *edev; diff --git a/arch/powerpc/kernel/eeh_pe.c b/arch/powerpc/kernel/eeh_pe.c index 2e8d1b2b5af4..2d4956e97aa9 100644 --- a/arch/powerpc/kernel/eeh_pe.c +++ b/arch/powerpc/kernel/eeh_pe.c @@ -526,16 +526,16 @@ int eeh_rmv_from_parent_pe(struct eeh_dev *edev) */ void eeh_pe_update_time_stamp(struct eeh_pe *pe) { - struct timeval tstamp; + time64_t tstamp; if (!pe) return; if (pe->freeze_count <= 0) { pe->freeze_count = 0; - do_gettimeofday(&pe->tstamp); + pe->tstamp = ktime_get_seconds(); } else { - do_gettimeofday(&tstamp); - if (tstamp.tv_sec - pe->tstamp.tv_sec > 3600) { + tstamp = ktime_get_seconds(); + if (tstamp - pe->tstamp > 3600) { pe->tstamp = tstamp; pe->freeze_count = 0; } -- 2.9.0