2022-07-01 13:46:23

by Christian Marangi

[permalink] [raw]
Subject: [PATCH v2] PM / devfreq: exynos-bus: Fix NULL pointer dereference

Fix exynos-bus NULL pointer dereference by correctly using the local
generated freq_table to output the debug values instead of using the
profile freq_table that is not used in the driver.

Reported-by: Marek Szyprowski <[email protected]>
Tested-by: Marek Szyprowski <[email protected]>
Fixes: b5d281f6c16d ("PM / devfreq: Rework freq_table to be local to devfreq struct")
Cc: [email protected]
Signed-off-by: Christian Marangi <[email protected]>
Acked-by: Chanwoo Choi <[email protected]>
---
drivers/devfreq/exynos-bus.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
index b5615e667e31..79725bbb4bb0 100644
--- a/drivers/devfreq/exynos-bus.c
+++ b/drivers/devfreq/exynos-bus.c
@@ -447,9 +447,9 @@ static int exynos_bus_probe(struct platform_device *pdev)
}
}

- max_state = bus->devfreq->profile->max_state;
- min_freq = (bus->devfreq->profile->freq_table[0] / 1000);
- max_freq = (bus->devfreq->profile->freq_table[max_state - 1] / 1000);
+ max_state = bus->devfreq->max_state;
+ min_freq = (bus->devfreq->freq_table[0] / 1000);
+ max_freq = (bus->devfreq->freq_table[max_state - 1] / 1000);
pr_info("exynos-bus: new bus device registered: %s (%6ld KHz ~ %6ld KHz)\n",
dev_name(dev), min_freq, max_freq);

--
2.36.1


2022-07-01 14:14:38

by Chanwoo Choi

[permalink] [raw]
Subject: Re: [PATCH v2] PM / devfreq: exynos-bus: Fix NULL pointer dereference

Dear Rafael,

The pull request[1] has an issue for exynos-bus.c devfreq driver
and then fixed it by this patch.

If possible, could you please apply this patch to linux-pm.git
directly for 5.19-rc5?

[1] "[GIT,PULL] devfreq fixes for 5.19-rc5"
- https://patchwork.kernel.org/project/linux-pm/patch/[email protected]/

Best Regards,
Chanwoo Choi

On Fri, Jul 1, 2022 at 10:45 PM Christian Marangi <[email protected]> wrote:
>
> Fix exynos-bus NULL pointer dereference by correctly using the local
> generated freq_table to output the debug values instead of using the
> profile freq_table that is not used in the driver.
>
> Reported-by: Marek Szyprowski <[email protected]>
> Tested-by: Marek Szyprowski <[email protected]>
> Fixes: b5d281f6c16d ("PM / devfreq: Rework freq_table to be local to devfreq struct")
> Cc: [email protected]
> Signed-off-by: Christian Marangi <[email protected]>
> Acked-by: Chanwoo Choi <[email protected]>
> ---
> drivers/devfreq/exynos-bus.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/devfreq/exynos-bus.c b/drivers/devfreq/exynos-bus.c
> index b5615e667e31..79725bbb4bb0 100644
> --- a/drivers/devfreq/exynos-bus.c
> +++ b/drivers/devfreq/exynos-bus.c
> @@ -447,9 +447,9 @@ static int exynos_bus_probe(struct platform_device *pdev)
> }
> }
>
> - max_state = bus->devfreq->profile->max_state;
> - min_freq = (bus->devfreq->profile->freq_table[0] / 1000);
> - max_freq = (bus->devfreq->profile->freq_table[max_state - 1] / 1000);
> + max_state = bus->devfreq->max_state;
> + min_freq = (bus->devfreq->freq_table[0] / 1000);
> + max_freq = (bus->devfreq->freq_table[max_state - 1] / 1000);
> pr_info("exynos-bus: new bus device registered: %s (%6ld KHz ~ %6ld KHz)\n",
> dev_name(dev), min_freq, max_freq);
>
> --
> 2.36.1
>