diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0085-staging-fsl_qbman-stop-using-current_kernel_time.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/701-net-0085-staging-fsl_qbman-stop-using-current_kernel_time.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0085-staging-fsl_qbman-stop-using-current_kernel_time.patch b/target/linux/layerscape/patches-5.4/701-net-0085-staging-fsl_qbman-stop-using-current_kernel_time.patch new file mode 100644 index 0000000000..71f16e9e60 --- /dev/null +++ b/target/linux/layerscape/patches-5.4/701-net-0085-staging-fsl_qbman-stop-using-current_kernel_time.patch @@ -0,0 +1,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" |