2022-03-06 03:50:32

by Rob Clark

[permalink] [raw]
Subject: [PATCH] drm/msm/a6xx: Fix missing ARRAY_SIZE() check

From: Rob Clark <[email protected]>

Fixes: f6d62d091cfd ("drm/msm/a6xx: add support for Adreno 660 GPU")
Signed-off-by: Rob Clark <[email protected]>
Reviewed-by: Dmitry Baryshkov <[email protected]>
---
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 02b47977b5c3..83c31b2ad865 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -683,19 +683,23 @@ static void a6xx_set_cp_protect(struct msm_gpu *gpu)
{
struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
const u32 *regs = a6xx_protect;
- unsigned i, count = ARRAY_SIZE(a6xx_protect), count_max = 32;
-
- BUILD_BUG_ON(ARRAY_SIZE(a6xx_protect) > 32);
- BUILD_BUG_ON(ARRAY_SIZE(a650_protect) > 48);
+ unsigned i, count, count_max;

if (adreno_is_a650(adreno_gpu)) {
regs = a650_protect;
count = ARRAY_SIZE(a650_protect);
count_max = 48;
+ BUILD_BUG_ON(ARRAY_SIZE(a650_protect) > 48);
} else if (adreno_is_a660_family(adreno_gpu)) {
regs = a660_protect;
count = ARRAY_SIZE(a660_protect);
count_max = 48;
+ BUILD_BUG_ON(ARRAY_SIZE(a660_protect) > 48);
+ } else {
+ regs = a6xx_protect;
+ count = ARRAY_SIZE(a6xx_protect);
+ count_max = 32;
+ BUILD_BUG_ON(ARRAY_SIZE(a6xx_protect) > 32);
}

/*
--
2.35.1


2022-03-07 20:01:34

by Akhil P Oommen

[permalink] [raw]
Subject: Re: [PATCH] drm/msm/a6xx: Fix missing ARRAY_SIZE() check

On 3/5/2022 11:04 PM, Rob Clark wrote:
> From: Rob Clark <[email protected]>
>
> Fixes: f6d62d091cfd ("drm/msm/a6xx: add support for Adreno 660 GPU")
> Signed-off-by: Rob Clark <[email protected]>
> Reviewed-by: Dmitry Baryshkov <[email protected]>
> ---
> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> index 02b47977b5c3..83c31b2ad865 100644
> --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> @@ -683,19 +683,23 @@ static void a6xx_set_cp_protect(struct msm_gpu *gpu)
> {
> struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
> const u32 *regs = a6xx_protect;
> - unsigned i, count = ARRAY_SIZE(a6xx_protect), count_max = 32;
> -
> - BUILD_BUG_ON(ARRAY_SIZE(a6xx_protect) > 32);
> - BUILD_BUG_ON(ARRAY_SIZE(a650_protect) > 48);
> + unsigned i, count, count_max;
>
> if (adreno_is_a650(adreno_gpu)) {
> regs = a650_protect;
> count = ARRAY_SIZE(a650_protect);
> count_max = 48;
> + BUILD_BUG_ON(ARRAY_SIZE(a650_protect) > 48);
> } else if (adreno_is_a660_family(adreno_gpu)) {
> regs = a660_protect;
> count = ARRAY_SIZE(a660_protect);
> count_max = 48;
> + BUILD_BUG_ON(ARRAY_SIZE(a660_protect) > 48);
> + } else {
> + regs = a6xx_protect;
> + count = ARRAY_SIZE(a6xx_protect);
> + count_max = 32;
> + BUILD_BUG_ON(ARRAY_SIZE(a6xx_protect) > 32);
> }
>
> /*
Reviewed-by: Akhil P Oommen <[email protected]>

-Akhil.