You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/layerscape/patches-5.4/701-net-0085-staging-fsl_qb...

41 lines
1.4 KiB
Diff

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"