Currently, a6xx_show() dereferences state before checking whether it is
NULL or an error pointer.This can lead to invalid memory access if state
is invalid.
Move the IS_ERR_OR_NULL(state) check to the top of the function before
any use of state.
Fixes: 1707add81551 ("drm/msm/a6xx: Add a6xx gpu state")
Signed-off-by: Alok Tiwari <[email protected]>
---
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
index 4c7f3c642f6a..e408e1d84ade 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
@@ -1976,14 +1976,14 @@ static void a6xx_show_debugbus(struct a6xx_gpu_state
*a6xx_state,
void a6xx_show(struct msm_gpu *gpu, struct msm_gpu_state *state,
struct drm_printer *p)
{
+ if (IS_ERR_OR_NULL(state))
+ return;
+
struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
struct a6xx_gpu_state *a6xx_state = container_of(state,
struct a6xx_gpu_state, base);
int i;
- if (IS_ERR_OR_NULL(state))
- return;
-
drm_printf(p, "gpu-initialized: %d\n", a6xx_state->gpu_initialized);
adreno_show(gpu, state, p);
--
2.50.1