drm/vc4: Return -EINVAL on the overflow checks failing.
authorEric Anholt <eric@anholt.net>
Tue, 17 Jan 2017 10:58:06 +0000 (21:58 +1100)
committerEric Anholt <eric@anholt.net>
Tue, 17 Jan 2017 11:06:01 +0000 (22:06 +1100)
By failing to set the errno, we'd continue on to trying to set up the
RCL, and then oops on trying to dereference the tile_bo that binning
validation should have set up.

Reported-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.")

drivers/gpu/drm/vc4/vc4_gem.c

index c5fe3554858e513ed30fd8cb8944d34c2b26174d..ab3016982466c3ca35ba479050ee107d26eb50ac 100644 (file)
@@ -601,6 +601,7 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec)
                                          sizeof(struct vc4_shader_state)) ||
            temp_size < exec_size) {
                DRM_ERROR("overflow in exec arguments\n");
+               ret = -EINVAL;
                goto fail;
        }