diff mbox series

[RESEND] drm: i915: remove timeval users

Message ID 20180117154916.219273-1-arnd@arndb.de
State Accepted
Commit c6270dbce9b01b465875ee4200623887f9399a21
Headers show
Series [RESEND] drm: i915: remove timeval users | expand

Commit Message

Arnd Bergmann Jan. 17, 2018, 3:48 p.m. UTC
struct timeval is deprecated because it cannot represent times
past 2038. In this driver, the only use of this structure is
to capture debug information. This is easily changed to ktime_t,
which we then format as needed when printing it later.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
Sent in November 2017, got the review from Chis, but the patch
so far hasn't been merged. Resending it unchanged, please apply
for 4.16 or 4.17.
---
 drivers/gpu/drm/i915/i915_drv.h       |  6 +++---
 drivers/gpu/drm/i915/i915_gpu_error.c | 25 ++++++++++++++-----------
 2 files changed, 17 insertions(+), 14 deletions(-)

-- 
2.9.0

Comments

Arnd Bergmann Jan. 17, 2018, 7:42 p.m. UTC | #1
On Wed, Jan 17, 2018 at 7:02 PM, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> Quoting Arnd Bergmann (2018-01-17 15:48:53)

>> struct timeval is deprecated because it cannot represent times

>> past 2038. In this driver, the only use of this structure is

>> to capture debug information. This is easily changed to ktime_t,

>> which we then format as needed when printing it later.

>>

>> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>> ---

>> Sent in November 2017, got the review from Chis, but the patch

>> so far hasn't been merged. Resending it unchanged, please apply

>> for 4.16 or 4.17.

>

> Looks like it falls to me to push it as well. That means it will be 4.17

> unless expedited by request...


4.17 is fine with me, it's only a cleanup and while I want to do all of
these in the end, I don't care which release they land in as long
as I don't have to carry the patches myself.

       Arnd
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index caebd5825279..8d860fcd8c43 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -453,9 +453,9 @@  struct intel_display_error_state;
 
 struct i915_gpu_state {
 	struct kref ref;
-	struct timeval time;
-	struct timeval boottime;
-	struct timeval uptime;
+	ktime_t time;
+	ktime_t boottime;
+	ktime_t uptime;
 
 	struct drm_i915_private *i915;
 
diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 944059322daa..06577574296b 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -610,6 +610,7 @@  int i915_error_state_to_str(struct drm_i915_error_state_buf *m,
 {
 	struct drm_i915_private *dev_priv = m->i915;
 	struct drm_i915_error_object *obj;
+	struct timespec64 ts;
 	int i, j;
 
 	if (!error) {
@@ -620,12 +621,15 @@  int i915_error_state_to_str(struct drm_i915_error_state_buf *m,
 	if (*error->error_msg)
 		err_printf(m, "%s\n", error->error_msg);
 	err_printf(m, "Kernel: " UTS_RELEASE "\n");
-	err_printf(m, "Time: %ld s %ld us\n",
-		   error->time.tv_sec, error->time.tv_usec);
-	err_printf(m, "Boottime: %ld s %ld us\n",
-		   error->boottime.tv_sec, error->boottime.tv_usec);
-	err_printf(m, "Uptime: %ld s %ld us\n",
-		   error->uptime.tv_sec, error->uptime.tv_usec);
+	ts = ktime_to_timespec64(error->time);
+	err_printf(m, "Time: %lld s %ld us\n",
+		   (s64)ts.tv_sec, ts.tv_nsec / NSEC_PER_USEC);
+	ts = ktime_to_timespec64(error->boottime);
+	err_printf(m, "Boottime: %lld s %ld us\n",
+		   (s64)ts.tv_sec, ts.tv_nsec / NSEC_PER_USEC);
+	ts = ktime_to_timespec64(error->uptime);
+	err_printf(m, "Uptime: %lld s %ld us\n",
+		   (s64)ts.tv_sec, ts.tv_nsec / NSEC_PER_USEC);
 
 	for (i = 0; i < ARRAY_SIZE(error->engine); i++) {
 		if (error->engine[i].hangcheck_stalled &&
@@ -1737,11 +1741,10 @@  static int capture(void *data)
 {
 	struct i915_gpu_state *error = data;
 
-	do_gettimeofday(&error->time);
-	error->boottime = ktime_to_timeval(ktime_get_boottime());
-	error->uptime =
-		ktime_to_timeval(ktime_sub(ktime_get(),
-					   error->i915->gt.last_init_time));
+	error->time = ktime_get_real();
+	error->boottime = ktime_get_boottime();
+	error->uptime = ktime_sub(ktime_get(),
+				  error->i915->gt.last_init_time);
 
 	capture_params(error);
 	capture_uc_state(error);