Use the correct helper and also return early on helper success rather than on helper failure.
Also explicitly return 0 in the case of no fb.
Signed-off-by: Thomas Hellstrom thellstrom@vmware.com Reported-by: Dan Carpenter dan.carpenter@oracle.com Reported-by: Daniel Vetter daniel@ffwll.ch --- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index 3628a9fe705f..0f7dc9ea2657 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -494,23 +494,23 @@ int vmw_du_cursor_plane_atomic_check(struct drm_plane *plane, struct drm_plane_state *new_state) { int ret = 0; + struct drm_crtc_state *crtc_state = NULL; struct vmw_surface *surface = NULL; struct drm_framebuffer *fb = new_state->fb;
- struct drm_rect src = drm_plane_state_src(new_state); - struct drm_rect dest = drm_plane_state_dest(new_state); - /* Turning off */ if (!fb) - return ret; + return 0;
- ret = drm_plane_helper_check_update(plane, new_state->crtc, fb, - &src, &dest, - DRM_MODE_ROTATE_0, - DRM_PLANE_HELPER_NO_SCALING, - DRM_PLANE_HELPER_NO_SCALING, - true, true, &new_state->visible); - if (!ret) + if (new_state->crtc) + crtc_state = drm_atomic_get_new_crtc_state(new_state->state, + new_state->crtc); + + ret = drm_atomic_helper_check_plane_state(new_state, crtc_state, + DRM_PLANE_HELPER_NO_SCALING, + DRM_PLANE_HELPER_NO_SCALING, + true, true); + if (ret) return ret;
/* A lot of the code assumes this */
On Tue, Mar 27, 2018 at 04:26:17PM +0200, Thomas Hellstrom wrote:
Use the correct helper and also return early on helper success rather than on helper failure.
Also explicitly return 0 in the case of no fb.
Signed-off-by: Thomas Hellstrom thellstrom@vmware.com Reported-by: Dan Carpenter dan.carpenter@oracle.com Reported-by: Daniel Vetter daniel@ffwll.ch
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index 3628a9fe705f..0f7dc9ea2657 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -494,23 +494,23 @@ int vmw_du_cursor_plane_atomic_check(struct drm_plane *plane, struct drm_plane_state *new_state) { int ret = 0;
- struct drm_crtc_state *crtc_state = NULL; struct vmw_surface *surface = NULL; struct drm_framebuffer *fb = new_state->fb;
- struct drm_rect src = drm_plane_state_src(new_state);
- struct drm_rect dest = drm_plane_state_dest(new_state);
- /* Turning off */ if (!fb)
return ret;
return 0;
This should probably be checked after drm_atomic_helper_check_plane_state() has been called. Otherwise new_state->visible may be left with a stale value.
- ret = drm_plane_helper_check_update(plane, new_state->crtc, fb,
&src, &dest,
DRM_MODE_ROTATE_0,
DRM_PLANE_HELPER_NO_SCALING,
DRM_PLANE_HELPER_NO_SCALING,
true, true, &new_state->visible);
- if (!ret)
if (new_state->crtc)
crtc_state = drm_atomic_get_new_crtc_state(new_state->state,
new_state->crtc);
ret = drm_atomic_helper_check_plane_state(new_state, crtc_state,
DRM_PLANE_HELPER_NO_SCALING,
DRM_PLANE_HELPER_NO_SCALING,
true, true);
if (ret) return ret;
/* A lot of the code assumes this */
-- 2.14.3
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
On 03/27/2018 05:08 PM, Ville Syrjälä wrote:
On Tue, Mar 27, 2018 at 04:26:17PM +0200, Thomas Hellstrom wrote:
Use the correct helper and also return early on helper success rather than on helper failure.
Also explicitly return 0 in the case of no fb.
Signed-off-by: Thomas Hellstrom thellstrom@vmware.com Reported-by: Dan Carpenter dan.carpenter@oracle.com Reported-by: Daniel Vetter daniel@ffwll.ch
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index 3628a9fe705f..0f7dc9ea2657 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -494,23 +494,23 @@ int vmw_du_cursor_plane_atomic_check(struct drm_plane *plane, struct drm_plane_state *new_state) { int ret = 0;
- struct drm_crtc_state *crtc_state = NULL; struct vmw_surface *surface = NULL; struct drm_framebuffer *fb = new_state->fb;
- struct drm_rect src = drm_plane_state_src(new_state);
- struct drm_rect dest = drm_plane_state_dest(new_state);
- /* Turning off */ if (!fb)
return ret;
return 0;
This should probably be checked after drm_atomic_helper_check_plane_state() has been called. Otherwise new_state->visible may be left with a stale value.
Thanks. I'll respin.
/Thomas
On Tue, Mar 27, 2018 at 5:15 PM, Thomas Hellstrom thellstrom@vmware.com wrote:
On 03/27/2018 05:08 PM, Ville Syrjälä wrote:
On Tue, Mar 27, 2018 at 04:26:17PM +0200, Thomas Hellstrom wrote:
Use the correct helper and also return early on helper success rather than on helper failure.
Also explicitly return 0 in the case of no fb.
Signed-off-by: Thomas Hellstrom thellstrom@vmware.com Reported-by: Dan Carpenter dan.carpenter@oracle.com Reported-by: Daniel Vetter daniel@ffwll.ch
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index 3628a9fe705f..0f7dc9ea2657 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -494,23 +494,23 @@ int vmw_du_cursor_plane_atomic_check(struct drm_plane *plane, struct drm_plane_state *new_state) { int ret = 0;
struct drm_crtc_state *crtc_state = NULL; struct vmw_surface *surface = NULL; struct drm_framebuffer *fb = new_state->fb;
struct drm_rect src = drm_plane_state_src(new_state);
struct drm_rect dest = drm_plane_state_dest(new_state);
/* Turning off */ if (!fb)
return ret;
return 0;
This should probably be checked after drm_atomic_helper_check_plane_state() has been called. Otherwise new_state->visible may be left with a stale value.
Thanks. I'll respin.
I just wanted to nuke drm_plane_helper_check_update and noticed that vmwgfx is still using it. Will you respin, or did I catch it in-flight, or should I respin to get this going?
Thanks, Daniel
dri-devel@lists.freedesktop.org