From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752206AbdK0Lr0 (ORCPT ); Mon, 27 Nov 2017 06:47:26 -0500 Received: from mout.kundenserver.de ([212.227.126.133]:60666 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752085AbdK0LrX (ORCPT ); Mon, 27 Nov 2017 06:47:23 -0500 From: Arnd Bergmann To: Stefan Haberland , Jan Hoeppner , Martin Schwidefsky , Heiko Carstens Cc: y2038@lists.linaro.org, Arnd Bergmann , Sebastian Ott , linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] s390/dasd: remove 'struct timespec' usage Date: Mon, 27 Nov 2017 12:46:57 +0100 Message-Id: <20171127114715.2731901-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:aEl/HXRmyz/1pfaQ7c6qtSqkKQmL9lPBOPaFqAK0E4duHdOTN1K kRMaYzpgHwAlBTB1BdrndvIDSKO/MGS3Reoe2ZwNOEsj77H/uxtRMzpQY5b2lZbT3eQBeIx UXOxVrxON+l8ss9/p9AkcA+PTKEDQk+YO0KzFltOMS9fXfZTn48OhqXUtwLRuzvAeG/DbZx Hrimbp9sjX8bqM0KbrOMg== X-UI-Out-Filterresults: notjunk:1;V01:K0:EfMKCqwVsZ8=:5DTPXk9whdDoPs7XiJkRWS 5OjNqKcepz3UAZzNWhydhyJmeJ+VgPJlixZcF5MF0NbcVuqOEWG9tC05wPAn2akVFcvuDHOHV uu8Yu6WLxmaARwGq4y+Uc8qVq0qyJsXiF0B8HId2+Bt39TWSO1MkTpocrnJzGiFDXnNeWgQ4w 3wx82bkWdme1VXVL9rjphx1aRak32Dc1cvDS9G4qf8mDlZuR3zgWD87vvTEmvXl/QPFkKJvZj mApPywydOudoAuVLmUdI4d07BAYmfguGmRzEIxuACNsS9NDOeYS54nZv3ugbLErv2HM2XCZ8j 9XkMUjuvDYWssYkZOhy/Lo+kig8kKqzgStXXjkhYrzS+E8OiOBsIAKYxYIm+KlndRxC2LtaCy H7wOgj7ObRHr9BiLJVzAVtZIN0Hf6wY4LOG3PPEX6lsaUd3SrUf0w63XsC3Egys9wHz4vojc4 qypnYz9hBGKKcrzg8afv8HcXsedc51GhFZEvBg4+dipeNLjsqYXgABDcrlycE3/s9aWX/7pGD k/yIcraPOAPUovsoRte6zMVXC7EDPELtbSw7eqme+HB4UA/NKQS22D/zp7IohXlQzYb1NIvhr pkjUJWBOcYP1g9C5pkhcLgtRatxnZLcDh+KESttcucKZ5xzpZnDCG39EgRTH50zDwGwTm5D/U 4cSm93XJq98VELds3tFe/V0WjD706dV6NhIS03bC742fbwj1hyuNB3EQ5h8/ZBmYX8mp+BaFc Fb4ksXM5KbEtMBqEUGk6ddgQYtoFjYDww+6HkQ== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org getnstimeofday() and timespec are deprecated since they can overflow on 32-bit architectures. This simply changes to the explicitly typed timespec64 version that doesn't have that problem. It would be nice to also convert to monotonic timestamps and call ktime_get_ts64() rather than ktime_get_real_ts64(), but that would be a user-visible change. Signed-off-by: Arnd Bergmann --- drivers/s390/block/dasd.c | 10 +++++----- drivers/s390/block/dasd_int.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index 0f1ff0813493..f48b3d5082cf 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c @@ -758,7 +758,7 @@ static void dasd_profile_end_add_data(struct dasd_profile_info *data, /* in case of an overflow, reset the whole profile */ if (data->dasd_io_reqs == UINT_MAX) { memset(data, 0, sizeof(*data)); - getnstimeofday(&data->starttod); + ktime_get_real_ts64(&data->starttod); } data->dasd_io_reqs++; data->dasd_io_sects += sectors; @@ -893,7 +893,7 @@ void dasd_profile_reset(struct dasd_profile *profile) return; } memset(data, 0, sizeof(*data)); - getnstimeofday(&data->starttod); + ktime_get_real_ts64(&data->starttod); spin_unlock_bh(&profile->lock); } @@ -910,7 +910,7 @@ int dasd_profile_on(struct dasd_profile *profile) kfree(data); return 0; } - getnstimeofday(&data->starttod); + ktime_get_real_ts64(&data->starttod); profile->data = data; spin_unlock_bh(&profile->lock); return 0; @@ -994,8 +994,8 @@ static void dasd_stats_array(struct seq_file *m, unsigned int *array) static void dasd_stats_seq_print(struct seq_file *m, struct dasd_profile_info *data) { - seq_printf(m, "start_time %ld.%09ld\n", - data->starttod.tv_sec, data->starttod.tv_nsec); + seq_printf(m, "start_time %lld.%09ld\n", + (s64)data->starttod.tv_sec, data->starttod.tv_nsec); seq_printf(m, "total_requests %u\n", data->dasd_io_reqs); seq_printf(m, "total_sectors %u\n", data->dasd_io_sects); seq_printf(m, "total_pav %u\n", data->dasd_io_alias); diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h index b095a23bcc0c..96709b1a7bf8 100644 --- a/drivers/s390/block/dasd_int.h +++ b/drivers/s390/block/dasd_int.h @@ -441,7 +441,7 @@ struct dasd_profile_info { unsigned int dasd_io_nr_req[32]; /* hist. of # of requests in chanq */ /* new data */ - struct timespec starttod; /* time of start or last reset */ + struct timespec64 starttod; /* time of start or last reset */ unsigned int dasd_io_alias; /* requests using an alias */ unsigned int dasd_io_tpm; /* requests using transport mode */ unsigned int dasd_read_reqs; /* total number of read requests */ -- 2.9.0