[PATCH] drm/amd/powerplay: avoid possible buffer overflow
Alex Deucher
alexdeucher at gmail.com
Tue Jan 8 02:52:10 UTC 2019
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
On Mon, Jan 7, 2019 at 9:36 PM Evan Quan <evan.quan at amd.com> wrote:
>
> Make sure the clock level enforced is within the allowed
> ranges.
>
> Change-Id: If69a8512121c0c94818ab698595502e17569d4c7
> Signed-off-by: Evan Quan <evan.quan at amd.com>
> ---
> drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
> index 8f6097c6a02b..c2061d351d04 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c
> @@ -2251,6 +2251,13 @@ static int vega20_force_clock_level(struct pp_hwmgr *hwmgr,
> soft_min_level = mask ? (ffs(mask) - 1) : 0;
> soft_max_level = mask ? (fls(mask) - 1) : 0;
>
> + if (soft_max_level >= data->dpm_table.gfx_table.count) {
> + pr_err("Clock level specified %d is over max allowed %d\n",
> + soft_max_level,
> + data->dpm_table.gfx_table.count - 1);
> + return -EINVAL;
> + }
> +
> data->dpm_table.gfx_table.dpm_state.soft_min_level =
> data->dpm_table.gfx_table.dpm_levels[soft_min_level].value;
> data->dpm_table.gfx_table.dpm_state.soft_max_level =
> @@ -2271,6 +2278,13 @@ static int vega20_force_clock_level(struct pp_hwmgr *hwmgr,
> soft_min_level = mask ? (ffs(mask) - 1) : 0;
> soft_max_level = mask ? (fls(mask) - 1) : 0;
>
> + if (soft_max_level >= data->dpm_table.mem_table.count) {
> + pr_err("Clock level specified %d is over max allowed %d\n",
> + soft_max_level,
> + data->dpm_table.mem_table.count - 1);
> + return -EINVAL;
> + }
> +
> data->dpm_table.mem_table.dpm_state.soft_min_level =
> data->dpm_table.mem_table.dpm_levels[soft_min_level].value;
> data->dpm_table.mem_table.dpm_state.soft_max_level =
> --
> 2.20.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list