Re: [PATCH] drm/i915: Fix frontbuffer false positve.

Matt Roper
2015-02-24T21:42:44Z

On Tue, Feb 24, 2015 at 01:37:54PM -0800, Rodrigo Vivi wrote:
> This return 0 without setting atomic bits on fb == crtc->cursor->fb
> where causing frontbuffer false positives.
>
> According to Daniel:
>
> The original regression seems to have been introduced in the original
> check/commit split:
>
> commit 757f9a3e5b8a812af0c213099a5b31cb423f4d3c
> Author: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
> Date: Wed Sep 24 14:20:24 2014 -0300
>
> drm/i915: move check of intel_crtc_cursor_set_obj() out
>
> Which already cause other trouble, resulting in the check getting moved in
>
> commit e391ea882b1a04fb3f559287ac694652a3cd9da9
> Author: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
> Date: Wed Sep 24 14:20:25 2014 -0300
>
> drm/i915: Fix not checking cursor and object sizes
>
> The frontbuffer tracking itself only was broken when we shifted it into
> the check/commit logic with:
>
> commit 32b7eeec4d1e861230b09d437e95d76c86ff4a68
> Author: Matt Roper <matthew.d.roper@intel.com>
> Date: Wed Dec 24 07:59:06 2014 -0800
>
> drm/i915: Refactor work that can sleep out of commit (v7)
>
> v2: When putting more debug prints I notice the solution was simpler
> than I thought. AMS design is solid, just this return was wrong.
> Sorry for the noise.
>
> v3: Remove the entire chunck that would probably
> be removed by gcc anyway. (by Daniel)
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

Not sure I understand Daniel's remark about gcc optimization, but the
change still looks good to me.

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>

> ---
> drivers/gpu/drm/i915/intel_display.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 8ccf033..900dcaa 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12197,9 +12197,6 @@ intel_check_cursor_plane(struct drm_plane *plane,
> return -ENOMEM;
> }
>
> - if (fb == crtc->cursor->fb)
> - return 0;
> -
> if (fb->modifier[0] != DRM_FORMAT_MOD_NONE) {
> DRM_DEBUG_KMS("cursor cannot be tiled\n");
> ret = -EINVAL;
> --
> 2.1.0
>

--
Matt Roper
Graphics Software Engineer
IoTG Platform Enabling & Development
Intel Corporation
(916) 356-2795