diff mbox

drm: Fix locking gotcha in page_flip ioctl

Message ID 20170330204831.8225-1-daniel.vetter@ffwll.ch (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter March 30, 2017, 8:48 p.m. UTC
We want to lock the primary plane, not the cursor (which might be
optional). Real bad case of copy-paste fail, unfortunately our CI
didn't catch that because i915 does have a cursor plane.

Cc: Eric Anholt <eric@anholt.net>
Reported-by: Eric Anholt <eric@anholt.net>
Fixes: 29dc0d1de182 ("drm: Roll out acquire context for the page_flip ioctl")
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/drm_plane.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Harry Wentland March 30, 2017, 9:26 p.m. UTC | #1
Reviewed-by: Harry Wentland <harry.wentland@amd.com>

Harry


On 2017-03-30 04:48 PM, Daniel Vetter wrote:
> We want to lock the primary plane, not the cursor (which might be
> optional). Real bad case of copy-paste fail, unfortunately our CI
> didn't catch that because i915 does have a cursor plane.
>
> Cc: Eric Anholt <eric@anholt.net>
> Reported-by: Eric Anholt <eric@anholt.net>
> Fixes: 29dc0d1de182 ("drm: Roll out acquire context for the page_flip ioctl")
> Cc: Harry Wentland <harry.wentland@amd.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  drivers/gpu/drm/drm_plane.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
> index 3a6de27bafed..838ca742a28b 100644
> --- a/drivers/gpu/drm/drm_plane.c
> +++ b/drivers/gpu/drm/drm_plane.c
> @@ -871,7 +871,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
>  	ret = drm_modeset_lock(&crtc->mutex, &ctx);
>  	if (ret)
>  		goto out;
> -	ret = drm_modeset_lock(&crtc->cursor->mutex, &ctx);
> +	ret = drm_modeset_lock(&crtc->primary->mutex, &ctx);
>  	if (ret)
>  		goto out;
>
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
index 3a6de27bafed..838ca742a28b 100644
--- a/drivers/gpu/drm/drm_plane.c
+++ b/drivers/gpu/drm/drm_plane.c
@@ -871,7 +871,7 @@  int drm_mode_page_flip_ioctl(struct drm_device *dev,
 	ret = drm_modeset_lock(&crtc->mutex, &ctx);
 	if (ret)
 		goto out;
-	ret = drm_modeset_lock(&crtc->cursor->mutex, &ctx);
+	ret = drm_modeset_lock(&crtc->primary->mutex, &ctx);
 	if (ret)
 		goto out;