backend-drm: Skip testing plane state if plane is not enabled

Adds a further assert() to make sure we're not checking against invalid
values. This was seen in the wild when the kernel rejects the commit for
overlay resulting in a check for invalid zpos values.

Fixes: #304

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
dev
Marius Vlad 5 years ago
parent bd002b9884
commit 788e80db77
  1. 6
      libweston/backend-drm/state-propose.c

@ -604,6 +604,12 @@ drm_output_check_zpos_plane_states(struct drm_output_state *state)
struct wl_list *next_node = ps->link.next; struct wl_list *next_node = ps->link.next;
bool found_dup = false; bool found_dup = false;
/* skip any plane that is not enabled */
if (!ps->fb)
continue;
assert(ps->zpos != DRM_PLANE_ZPOS_INVALID_PLANE);
/* find another plane with the same zpos value */ /* find another plane with the same zpos value */
if (next_node == &state->plane_list) if (next_node == &state->plane_list)
break; break;

Loading…
Cancel
Save