zink: prune dmabuf export tracking when adding resource binds

this avoids invalid access for the stack resource in add_resource_bind()
when adding a new bind to an exportable resource

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27395>
This commit is contained in:
Mike Blumenkrantz
2024-01-31 12:39:08 -05:00
committed by Marge Bot
parent 60d2ea83e8
commit 7b7a581a52

View File

@@ -1756,6 +1756,11 @@ add_resource_bind(struct zink_context *ctx, struct zink_resource *res, unsigned
box.depth = util_num_layers(&res->base.b, i);
ctx->base.resource_copy_region(&ctx->base, &res->base.b, i, 0, 0, 0, &staging.base.b, i, &box);
}
if (old_obj->exportable) {
simple_mtx_lock(&ctx->batch.state->exportable_lock);
_mesa_set_remove_key(&ctx->batch.state->dmabuf_exports, &staging);
simple_mtx_unlock(&ctx->batch.state->exportable_lock);
}
zink_resource_object_reference(screen, &old_obj, NULL);
return true;
}