aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0085-staging-fsl_qbman-stop-using-current_kernel_time.patch
blob: 71f16e9e60005f1a366909f75cd88748f26f47e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
From 91c2f372e3f70ab5b5afff5af60348fd5656d739 Mon Sep 17 00:00:00 2001
From: Camelia Groza <camelia.groza@nxp.com>
Date: Wed, 10 Oct 2018 17:30:18 +0300
Subject: [PATCH] staging/fsl_qbman: stop using current_kernel_time()

The current_kernel_time() call was removed in [1] in order to avoid
overflows in 2038. Use ktime_get_coarse_real_ts64() instead.

[1] 9765164 ("y2038: remove unused time interfaces")

Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
---
 drivers/staging/fsl_qbman/qbman_driver.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- a/drivers/staging/fsl_qbman/qbman_driver.c
+++ b/drivers/staging/fsl_qbman/qbman_driver.c
@@ -57,7 +57,10 @@ static __init int qbman_init(void)
 		};
 		struct qm_mcr_queryfq_np np;
 		int err, retry = CONFIG_FSL_QMAN_INIT_TIMEOUT;
-		struct timespec nowts, diffts, startts = current_kernel_time();
+		struct timespec64 nowts, diffts, startts;
+
+		ktime_get_coarse_real_ts64(&startts);
+
 		/* Loop while querying given fqid succeeds or time out */
 		while (1) {
 			err = qman_query_fq_np(&fq, &np);
@@ -68,8 +71,8 @@ static __init int qbman_init(void)
 				pr_err("QMan: I/O error, continuing anyway\n");
 				break;
 			}
-			nowts = current_kernel_time();
-			diffts = timespec_sub(nowts, startts);
+			ktime_get_coarse_real_ts64(&nowts);
+			diffts = timespec64_sub(nowts, startts);
 			if (diffts.tv_sec > 0) {
 				if (!retry--) {
 					pr_err("QMan: time out, control-plane"