2020-01-10 02:02:21

by Ikjoon Jang

[permalink] [raw]
Subject: [PATCH] BUG-REPORT: cpuidle: teo: intervals[] array index out

This seems to be a simple bug in rotating array index.
---
drivers/cpuidle/governors/teo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/cpuidle/governors/teo.c b/drivers/cpuidle/governors/teo.c
index de7e706efd46..6deaaf5f05b5 100644
--- a/drivers/cpuidle/governors/teo.c
+++ b/drivers/cpuidle/governors/teo.c
@@ -198,7 +198,7 @@ static void teo_update(struct cpuidle_driver *drv, struct cpuidle_device *dev)
* pattern detection.
*/
cpu_data->intervals[cpu_data->interval_idx++] = measured_ns;
- if (cpu_data->interval_idx > INTERVALS)
+ if (cpu_data->interval_idx >= INTERVALS)
cpu_data->interval_idx = 0;
}

--
2.24.1.735.g03f4e72817-goog


2020-01-10 11:15:09

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] BUG-REPORT: cpuidle: teo: intervals[] array index out

On Friday, January 10, 2020 2:59:17 AM CET Ikjoon Jang wrote:
> This seems to be a simple bug in rotating array index.

That's correct.

Please repost the patch with a Signed-off-by tag, so I can apply it.

> ---
> drivers/cpuidle/governors/teo.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/cpuidle/governors/teo.c b/drivers/cpuidle/governors/teo.c
> index de7e706efd46..6deaaf5f05b5 100644
> --- a/drivers/cpuidle/governors/teo.c
> +++ b/drivers/cpuidle/governors/teo.c
> @@ -198,7 +198,7 @@ static void teo_update(struct cpuidle_driver *drv, struct cpuidle_device *dev)
> * pattern detection.
> */
> cpu_data->intervals[cpu_data->interval_idx++] = measured_ns;
> - if (cpu_data->interval_idx > INTERVALS)
> + if (cpu_data->interval_idx >= INTERVALS)
> cpu_data->interval_idx = 0;
> }
>
>