scsi: fnic: Use time64_t to represent trace timestamps
authorDeepa Dinamani <deepa.kernel@gmail.com>
Sat, 1 Oct 2016 23:48:14 +0000 (16:48 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 8 Nov 2016 22:29:46 +0000 (17:29 -0500)
Trace timestamps use struct timespec and CURRENT_TIME which are not
y2038 safe.  These timestamps are only part of the trace log on the
machine and are not shared with the fnic.  Replace then with y2038 safe
struct timespec64 and ktime_get_real_ts64(), respectively.

Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Cc: Hiral Patel <hiralpat@cisco.com>
Cc: Suma Ramars <sramars@cisco.com>
Cc: Brian Uchino <buchino@cisco.com>
Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: linux-scsi@vger.kernel.org
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/fnic/fnic_trace.c
drivers/scsi/fnic/fnic_trace.h

index 4e15c4bf079578afc8d944b0daeaca2264178fb2..5a5fa01576b751ad7a60ca0bd95cd92d4dc2684e 100644 (file)
@@ -613,7 +613,7 @@ int fnic_fc_trace_set_data(u32 host_no, u8 frame_type,
                        fc_trace_entries.rd_idx = 0;
        }
 
-       fc_buf->time_stamp = CURRENT_TIME;
+       ktime_get_real_ts64(&fc_buf->time_stamp);
        fc_buf->host_no = host_no;
        fc_buf->frame_type = frame_type;
 
@@ -740,7 +740,7 @@ void copy_and_format_trace_data(struct fc_trace_hdr *tdata,
 
        len = *orig_len;
 
-       time_to_tm(tdata->time_stamp.tv_sec, 0, &tm);
+       time64_to_tm(tdata->time_stamp.tv_sec, 0, &tm);
 
        fmt = "%02d:%02d:%04ld %02d:%02d:%02d.%09lu ns%8x       %c%8x\t";
        len += snprintf(fnic_dbgfs_prt->buffer + len,
index a8aa0578fcb0a1d9a50cb14384360f79bce4f23d..e375d0c2eaaf8d2ac2ff30849e1d7d157afa486a 100644 (file)
@@ -72,7 +72,7 @@ struct fnic_trace_data {
 typedef struct fnic_trace_data fnic_trace_data_t;
 
 struct fc_trace_hdr {
-       struct timespec time_stamp;
+       struct timespec64 time_stamp;
        u32 host_no;
        u8 frame_type;
        u8 frame_len;