@@ -685,13 +685,13 @@ static inline struct execlist_port *
execlists_head_complete(struct intel_engine_execlists * const execlists,
struct execlist_port * const port)
{
- const unsigned int m = execlists->port_mask;
-
- GEM_BUG_ON(port_index(port, execlists) != 0);
+ GEM_BUG_ON(port_index(port, execlists) != execlists->port_head);
+ GEM_BUG_ON(!port_isset(port));
GEM_BUG_ON(!execlists_is_active(execlists, EXECLISTS_ACTIVE_USER));
- memmove(port, port + 1, m * sizeof(struct execlist_port));
- memset(port + m, 0, sizeof(struct execlist_port));
+ memset(port, 0, sizeof(*port));
+
+ execlists->port_head = port_head_add(execlists, 1);
return execlists_port_head(execlists);
}