s390/dasd: avoid calling do_gettimeofday()
authorArnd Bergmann <arnd@arndb.de>
Mon, 6 Nov 2017 14:02:41 +0000 (15:02 +0100)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 8 Nov 2017 21:10:29 +0000 (22:10 +0100)
do_gettimeofday() is deprecated because it's not y2038-safe on
32-bit architectures. Since it is basically a wrapper around
ktime_get_real_ts64(), we can just call that function directly
instead.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[sth@linux.vnet.ibm.com: fix build]
Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
drivers/s390/block/dasd_eer.c

index 8713fef..7b83ce9 100644 (file)
@@ -295,7 +295,7 @@ static void dasd_eer_write_standard_trigger(struct dasd_device *device,
 {
        struct dasd_ccw_req *temp_cqr;
        int data_size;
-       struct timeval tv;
+       struct timespec64 ts;
        struct dasd_eer_header header;
        unsigned long flags;
        struct eerbuffer *eerb;
@@ -309,9 +309,9 @@ static void dasd_eer_write_standard_trigger(struct dasd_device *device,
 
        header.total_size = sizeof(header) + data_size + 4; /* "EOR" */
        header.trigger = trigger;
-       do_gettimeofday(&tv);
-       header.tv_sec = tv.tv_sec;
-       header.tv_usec = tv.tv_usec;
+       ktime_get_real_ts64(&ts);
+       header.tv_sec = ts.tv_sec;
+       header.tv_usec = ts.tv_nsec / NSEC_PER_USEC;
        strncpy(header.busid, dev_name(&device->cdev->dev),
                DASD_EER_BUSID_SIZE);
 
@@ -339,7 +339,7 @@ static void dasd_eer_write_snss_trigger(struct dasd_device *device,
 {
        int data_size;
        int snss_rc;
-       struct timeval tv;
+       struct timespec64 ts;
        struct dasd_eer_header header;
        unsigned long flags;
        struct eerbuffer *eerb;
@@ -352,9 +352,9 @@ static void dasd_eer_write_snss_trigger(struct dasd_device *device,
 
        header.total_size = sizeof(header) + data_size + 4; /* "EOR" */
        header.trigger = DASD_EER_STATECHANGE;
-       do_gettimeofday(&tv);
-       header.tv_sec = tv.tv_sec;
-       header.tv_usec = tv.tv_usec;
+       ktime_get_real_ts64(&ts);
+       header.tv_sec = ts.tv_sec;
+       header.tv_usec = ts.tv_nsec / NSEC_PER_USEC;
        strncpy(header.busid, dev_name(&device->cdev->dev),
                DASD_EER_BUSID_SIZE);