mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-18 11:56:14 +07:00
s390/dasd: remove 'struct timespec' usage
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 <arnd@arndb.de> Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
b23481fbfc
commit
bd7a9b3757
@ -759,7 +759,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;
|
||||
@ -894,7 +894,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);
|
||||
}
|
||||
|
||||
@ -911,7 +911,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;
|
||||
@ -995,8 +995,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);
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user