From e0030bc39f87dde018add3dfb256d2cfd1a7859e Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 3 Mar 2022 12:25:41 -0500 Subject: [PATCH] zink: invalidate non-punted recycled descriptor sets that are not valid these sets may contain refs from the descriptors which need to be removed to avoid invalid memory access if the ref is leaked cc: mesa-stable Acked-by: Emma Anholt Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_descriptors.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/drivers/zink/zink_descriptors.c b/src/gallium/drivers/zink/zink_descriptors.c index 41523f3964b..1a097310b50 100644 --- a/src/gallium/drivers/zink/zink_descriptors.c +++ b/src/gallium/drivers/zink/zink_descriptors.c @@ -818,6 +818,8 @@ zink_descriptor_set_get(struct zink_context *ctx, zds = (void*)he->data; *cache_hit = !zds->invalid; if (recycled) { + if (zds->invalid) + descriptor_set_invalidate(zds); /* need to migrate this entry back to the in-use hash */ _mesa_hash_table_remove(pool->free_desc_sets, he); goto out;